Python - 如何从属性类中获取类实例引用?

时间:2010-12-02 01:01:36

标签: python class attributes reference

class A()    
    att = B()    

class B()    
    ...

a = A()

b = B()

a.att = b

如何获得参考?我需要在这里获得一个属性。

谢谢!

5 个答案:

答案 0 :(得分:0)

最简单的方法是在B中需要A的方法中添加一个额外的函数参数,并在调用时传递它。或者,只需让B的 init 取A作为参数,然后将A的init中的位更改为att = B(self)

答案 1 :(得分:0)

class A(object):
    def __init__(self):
        self.att = B(self)

class B(object):
    def __init__(self, a):
        self.a = a

a = A()

a.att.a is a

或者换句话说,

class A(object):
    def __init__(self, b):
        b.a = self
        self.att = b

class B(object):
    pass

a = A(B())

a.att.a is a

答案 2 :(得分:0)

这段代码没有多大意义......但如果我正确理解你的问题......

class A(object):
    pass     #or whatever you like

class B(object):
    def __init__(self, ref):  #accept one argument
        self.ref = ref

a = A()

b = B(a) #pass `a` as that argument

a.att = b

可能是一个答案。

答案 3 :(得分:0)

class A(object):

    def __init__(self):
        self._att=None

    @property
    def att(self):
        return self._att

    @att.setter
    def att(self, value):
        self._att = value
        value.parent = self


class B(object):

    pass

a = A()

b = B()

a.att = b
print b.parent

答案 4 :(得分:0)