Python使用另一个类中的一个类的对象
问题描述:
我正在学习类和基于对象的编程(在Python 2.7中)的基础知识。我试图能够访问我的圈子类中的点类中的对象,但我得到一个无属性错误。Python使用另一个类中的一个类的对象
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)
答
一种解决方案是将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的属性。主要的是你必须指定你想要传递的属性来构建圆。还有其他方法可以做你想做的事情,但这取决于最终目标是什么。
编辑: 在回答您的意见,你可以这样做:
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)
感谢您的答复。有没有一种方法可以实现,以便我可以分别抓住x和y值,如调用center.x返回2,center.y返回3? – blazecrooks
在我看到您的回复之前,我只是想出了它。我所要做的只是初始化self.center = center。然后我打电话通过c1 = Circle(p1,2)并使用c1.center.x – blazecrooks