从相关实例获取实例的属性

时间:2014-05-07 01:50:09

标签: python class oop reference

为什么我无法访问对象的属性,如下例所示? (引发错误)

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

2 个答案:

答案 0 :(得分:3)

将self.variable = 5移至self.y = Y(self)之前。初始化Y时,尚未在父项中设置变量。由于它不是类属性(仅为实例定义),因此在此之前不存在。

答案 1 :(得分:0)

您在添加/初始化variable属性之前进行实例化。它将不知道变量,除非再次实例化或交换另一个答案。