Мой код немного сложен, так что я покажу пример:питон ImportError: не может импортировать имя
файл A.py:
from B import B
class A():
def __init__(self):
self.id = 5
self.b = B()
файл B.py
from A import A
class B():
def __init__(self):
self.id = 15
self.a = A()
Это исключение я получаю:
Traceback (most recent call last):
File "F:/Project/Code/A.py", line 1, in <module>
from B import B
File "F:\Project\Code\B.py", line 1, in <module>
from A import A
File "F:\Project\Code\A.py", line 1, in <module>
from B import B
ImportError: cannot import name B
Все Я хочу, чтобы A содержал экземпляр B и B, чтобы содержать экземпляр A. Я знаю, что все, что мне нужно сделать, это преобразовать их в один файл, но я не хочу, мой код находится на гораздо больших масштабах и мой учитель заставляет меня хранить несколько коротких скриптов вместо одного длинного кода.
Любое предложение будет оценено по достоинству.
«Все, что я хочу, это чтобы содержать экземпляр B и B, чтобы содержать экземпляр A "- даже если вы разрешите проблему с циклическим импортом, это по-прежнему в основном b графический дизайн. A содержит B, который содержит другой A, который содержит другой B и т. Д. Создание одного из этих объектов требует создания бесконечного числа объектов. – user2357112
См. Этот вопрос: http://stackoverflow.com/questions/11698530/two-python-modules-require-each-others-contents-can-that-work – ScottSmudger
Я полагаю, что он мог бы указать максимальную глубину рекурсии создания как-то, но это довольно тяжелая метатема – Woody1193