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() ...