Python中的循环依赖
我有两个文件node.py
和path.py
,它们分别定义了两个类Node
和Path
。
到目前为止, Path
的定义引用了Node
对象,因此我完成了
from node.py import *
在path.py
文件中。
但是,截至今天,我为引用Path
对象的Node
创build了一个新的方法。
尝试导入path.py
时遇到了问题:我试了一下,当程序运行并调用使用Node
的Path
方法时,出现了一个exception,导致Node
没有被定义。
我该怎么办?
导入Python模块是一个很好的文章,它解释了Python中的循环导入。
解决此问题的最简单方法是将path导入移动到节点模块的末尾。
另一种方法是只在你需要的function中导入两个模块中的一个。 当然,如果你只需要一个或者less个函数就可以达到最好的效果:
# in node.py from path import Path class Node ... # in path.py class Path def method_needs_node(): from node import Node n = Node() ...