我正在学习类和基于对象的编程的基础知识(在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)
答案 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)