Итак, у меня есть эти два класса данных в файле:
@dataclass
class A:
children: List[B]
@dataclass
class B:
parent: A
, что возможно при использовании функции __future__.annotations
.
Затем у меня есть два других файла, каждый с кучей объектов для каждого типа, которые являются stati c для моего проекта.
Файл objects_A
:
import objects_B
obj_a1 = A(
children=[
objects_B.obj_b1,
objects_B.obj_b2
]
)
Файл objects_B
:
import objects_A
obj_b1 = B(
parent=objects_A.obj_a1
)
obj_b2 = B(
parent=objects_A.obj_a1
)
Очевидно, что существует проблема циклической зависимости между файлами, но она не будет работать, даже если они находятся в одном и том же файле, поскольку переменная одного типа зависит от успеха другого.
Инициализация B
объекты внутри obj_a1
также не будут работать, так как здесь нет понятия self
.
В данный момент я устанавливаю parent
в None
(против подсказок типа), и затем сделайте все oop на obj_a1
, чтобы настроить их:
for obj_b in obj_a1.children:
obj_b.parent = obj_a1
Любые люди с яркими идеями?
Не знаю, поможет ли это, но эти объекты устарели c (они после этих деклараций не изменится), и у них будут отношения типа «родители-дети» (как вы наверняка заметили).
Если возможно, Я хотел бы иметь переменные каждого типа в разных файлах.