Я пытаюсь работать с циклической зависимостью от Python (да, это необходимо, потому что мне нужно разделить мои модели на разные файлы и модули).
Я пробовал несколько способов подойти к этому (большинство из них уже предлагалось в связанных вопросах), но ни один из них не решил проблему.
Примечание: при удалении циклической зависимости код работает.
отсрочка импорта
/ module_a / class_a.py
from module_b.class_b import B
class A:
b = B()
/ module_b / class_b.py
class B:
from module_a.class_a import A
a = A()
отложить оба импорта
/ module_a / class_a.py
class A:
from module_b.class_b import B
b = B()
/ module_b / class_b.py
class B:
from module_a.class_a import A
a = A()
не используется из .. импортной записи
/ module_a / class_a.py
import module_b.class_b as mb
class A:
b = mb.B()
/ module_b / class_b.py
import module_a.class_a as ma
class B:
a = ma.A()
не используется из .. импортной записи с отложенным импортом
/ module_a / class_a.py
class A:
import module_b.class_b as mb
b = mb.B()
/ module_b / class_b.py
class B:
import module_a.class_a as ma
a = ma.A()
В результате ни одно из решений не сработало. Я не знаю, связано ли это с тем, что вызов относится к определению класса, но это должно быть так, потому что я использую ORM.