Ответ 1
Импорт модулей Python - отличная статья, которая объясняет круговой импорт в Python.
Самый простой способ исправить это - переместить импорт пути в конец модуля node.
У меня есть два файла: node.py
и path.py
, которые определяют два класса: Node
и Path
соответственно.
До сегодняшнего дня определение Path
ссылалось на объект Node
, и поэтому я сделал
from node.py import *
в файле path.py
.
Однако на сегодняшний день я создал новый метод для Node
, который ссылается на объект Path
.
У меня возникли проблемы при попытке импортировать path.py
: я попробовал это, и когда программа запустилась и вызвала метод Path
, который использует Node
, исключение выросло примерно на Node
, которое не определено.
Что мне делать?
Импорт модулей Python - отличная статья, которая объясняет круговой импорт в Python.
Самый простой способ исправить это - переместить импорт пути в конец модуля node.
Другим подходом является импорт одного из двух модулей только в функции, где это необходимо в другом. Конечно, это лучше всего работает, если вам нужно только одно или несколько функций:
# in node.py
from path import Path
class Node
...
# in path.py
class Path
def method_needs_node():
from node import Node
n = Node()
...