Python使用另一个类中一个类的对象

时间:2016-03-01 17:14:06

标签: python-2.7

我正在学习类和基于对象的编程的基础知识(在python 2.7中?)。我试图能够访问我的circle类中的points类中的对象,但是我得到了no属性错误。

class Point:
  #constructor
  def __init__(self,x,y):
    self.x = x
    self.y = y

class Circle:
  def __init__(self,center,radius):
    self.center.x = center.x
    self.center.y = center.y
    self.radius = radius

p1 = Point(2,3)
#print p1
c1 = Circle(p1, 2)

1 个答案:

答案 0 :(得分:0)

一种解决方案是将点对象的x和y属性的值传递给圆,并将圆的中心视为元组(或列表):

class Point:
  #constructor
  def __init__(self,x,y):
    self.x = x
    self.y = y

class Circle:
  def __init__(self, center, radius):
  self.center = center
  self.radius = radius

p1 = Point(2,3)
c1 = Circle((p1.x, p1.y), 2)

在这里,您将x和y引用为p1的属性。最重要的是,您必须指定要传递的属性才能构建圆。还有其他方法可以做你想要的,但这取决于最终目标是什么。

EDITED: 在回复您的评论时,您可以这样做:

class Circle:
  def __init__(self, center_x, center_y, radius):
    self.center_x = center_x
    self.center_y = center_y
    self.radius = radius

p1 = Point(2,3)
c1 = Circle(p1.x, p1.y, 2)