获取属性的属性持有者

时间:2011-07-09 04:54:37

标签: python

是否存在从属性到属性持有者的引用? 以下是我的意思:

class classA(object):
    def __init__(self):
        pass

class classB(object):
    def __init__(self):
        self.a=classA()

    def methodB(self):
        print "ClassB-s methodB called"

b=classB()
a=b.a

是否可以从a中引用b?我喜欢从a调用methodB。

1 个答案:

答案 0 :(得分:1)

不,不是真的。

初始化b.a时,它会成为对classA对象的引用:

>>> b.a
<__main__.classA object at 0x7feeb904df10>

要调用该方法,可以将父对象传递给classA

>>> class classA(object):
...    def __init__(self, parent):
...        self.parent = parent
...    
...    def method(self):
...        self.parent.methodB()
...
>>>
>>> class classB(object):
...    def __init__(self):
...        self.a=classA(self)
...
...    def methodB(self):
...        print "ClassB-s methodB called"
...
>>> b = classB()
>>> a = b.a
>>> a.method()
ClassB-s methodB called

从那里,您可以访问整个父母。