Существует ли ссылка от атрибута к держателю атрибута? Вот пример, что я имею в виду:
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
Можно ли ссылаться на b из a? Мне нравится называть методB от a.
Нет, не совсем.
Когда вы инициализируете ba
, он становится ссылкой на объект 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
Оттуда у вас есть доступ ко всему родителю.