Циклическая зависимость в Python



у меня есть два файла, node.py и path.py, которые определяют два класса, Node и Path, соответственно.



до сегодняшнего дня определение для Path ссылки Node "объект", и поэтому я сделал



from node.py import *


на .



однако, на сегодняшний день я создал новый метод для Node, который ссылается на

431   2  

2 ответов:

Импорт Модулей Python это отличная статья, которая объясняет циклический импорт в Python.

самый простой способ исправить это-переместить путь импорта в конец модуля узла.

еще один подход заключается в импорте одного из двух модулей только в функции где вам это нужно в другом. Конечно, это работает лучше всего, если вам нужно только в одной или небольшом количестве функций:

# in node.py 
from path import Path
class Node 
    ...

# in path.py
class Path
  def method_needs_node(): 
    from node import Node
    n = Node()
    ...

Comments

    Ничего не найдено.