Как ссылаться на объект создателя в Python? - PullRequest
0 голосов
/ 05 февраля 2012

У меня есть вопрос.

Есть два класса: A и B. A создает объект типа B. Таким образом, из A легко получить доступ к методам B, но как я могу получить доступ к методамобъект A из объекта B?Я пытаюсь использовать двунаправленный механизм передачи сигналов в Qt.A может легко иметь слот для сигнала в B, но B не может видеть сигналы в A.

У меня есть смутное представление о том, что каким-то образом на класс создателя можно ссылаться как на «член» во время создания объекта, но я не уверен, как это сделать.

Заранее спасибо.

Ответы [ 2 ]

1 голос
/ 05 февраля 2012

Передать создателя в качестве аргумента конструктору:

class B(object):
    def __init__(self, creator):
        self._creator = creator   # or do something else with it

Использовать как:

class A(object):
    def somemethod(self):
        b = B(self)
0 голосов
/ 05 февраля 2012

Нет способа сделать это автоматически.Вам просто нужно дать каждому B ссылку на A при создании, что-то вроде b_instance.parent = a_instance.

...