Циркулярная зависимость в Python
Обнаружение циклической зависимости может стать неприятной проблемой при работе с модулями Python. В этом конкретном сценарии у нас есть два файла, node.py и path.py, содержащие классы Node и Path соответственно.
Изначально path.py импортировал node.py, используя from node.py import *. Однако после добавления в Node нового метода, ссылающегося на объект Path, импорт path.py привел к ошибке, поскольку Node не был определен.
Чтобы устранить циклическую зависимость, рассмотрите возможность реализации следующего:
Используйте отложенное вычисление: вместо импорта одного модуля в другой во время инициализации, импортируйте его только при необходимости в рамках определенной функции. Например, в node.py импортируйте Path только при необходимости:
# in node.py from path import Path class Node ...
В path.py импортируйте Node только внутри того метода, который этого требует:
# in path.py class Path def method_needs_node(): from node import Node n = Node() ...
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3