为什么我无法访问对象的属性,如下例所示? (引发错误)
class X(object):
def __init__(self):
self.y = Y(self)
self.variable = 5
class Y(object):
def __init__(self,parent):
self.parent = parent
print self.parent.variable
my_instance = X()
引发错误:AttributeError: 'X' object has no attribute 'variable'
variable
初始化时创建的Y
实例是否可以访问X
答案 0 :(得分:3)
将self.variable = 5移至self.y = Y(self)之前。初始化Y时,尚未在父项中设置变量。由于它不是类属性(仅为实例定义),因此在此之前不存在。
答案 1 :(得分:0)
您在添加/初始化variable
属性之前进行实例化。它将不知道变量,除非再次实例化或交换另一个答案。