Szukałem dużo, ale to, co znajduję, to głównie przykłady programowania rekurencyjnego w pythonie. Oto pytanie:Klasy wzajemnie zależne Pythona (zależność cykliczna)
Jak mogę to osiągnąć?
class A:
b = B()
class B:
a = A()
Szukałem dużo, ale to, co znajduję, to głównie przykłady programowania rekurencyjnego w pythonie. Oto pytanie:Klasy wzajemnie zależne Pythona (zależność cykliczna)
Jak mogę to osiągnąć?
class A:
b = B()
class B:
a = A()
Wszystko jest dynamiczne w Pythonie - nawet deklaracje klasowe. Nie ma nic, aby zatrzymać cię modyfikując zawartość klasy po wstępnej deklaracji:
class A:
pass
class B:
a = A()
A.b = B()
Uwaga: Jeśli nie jesteś zaznajomiony z Pythona, słowo pass
prostu pozwala powiedzieć „nic tu” - to nie jest ważne, o ile klasa A nie jest tak pusta jak w tym przykładzie!
Fajnie, ale myślę, że to nie zadziała dla pola '__metaclass__' ... – dhill
to też by nie działało, gdybyś' z foo zaimportował A' w innym pliku –
To nie jest rekursja, to zależność cykliczna. – geoffspear