【发布时间】:2010-10-28 01:10:14
【问题描述】:
我有两个文件,node.py 和 path.py,它们分别定义了两个类,Node 和 Path。
到今天为止,Path 的定义引用了Node 对象,因此我已经完成了
from node.py import *
在path.py 文件中。
但是,从今天开始,我为 Node 创建了一个新方法,该方法引用了 Path 对象。
我在尝试导入path.py 时遇到问题:我试过了,当程序运行并调用使用Node 的Path 方法时,出现了一个关于Node 未定义的异常。
我该怎么办?
【问题讨论】:
-
您是否要为每个文件创建一个类?这就是为什么这很少能奏效的原因。
-
同意 S.Lott。 Python 不是 Java。每个文件不需要一个类。
-
有几个人说过“每个文件不需要一个类”,大意是“不要尝试成为 Java”。好的-但这不是重点。类定义可能会变得非常大,并且将它们捆绑到同一个文件中会产生非常大的、不可读的文件。在我正在处理的一个程序中,有 8 个相互依赖的类,每个类都有几百行长,我认为将它们保存在同一个文件中没有任何好处,而将它们分开则有相当大的好处。
-
Could not upvote @sfkleach enough.. 好像多类文件中的 1,000+ LOC 不足以阅读或维护,测试文件(人们 做为 Python 类编写测试,对吗?)将会更多更长,甚至更多是维护的噩梦。仅仅因为 Python 有时会使良好的组织变得困难并不意味着我们应该放弃可维护的代码。
标签: python circular-dependency