获取属性的属性持有者
一个属性能否指向它的持有者?
这里有个例子来说明我的意思:
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 个回答
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
这样一来,你就可以访问整个父对象了。