Python中的循环依赖

我有两个文件node.pypath.py ,它们分别定义了两个类NodePath

到目前为止, Path的定义引用了Node对象,因此我完成了

 from node.py import * 

path.py文件中。

但是,截至今天,我为引用Path对象的Node创build了一个新的方法。

尝试导入path.py时遇到了问题:我试了一下,当程序运行并调用使用NodePath方法时,出现了一个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() ...