【发布时间】:2010-09-17 23:05:07
【问题描述】:
我有三个文件:
测试导入模块:
#import moduleTwo
import moduleOne
hiString = "Hi!"
moduleOne.sayHi()
模块一:
import moduleTwo
class sayHi():
moduleTwo.printHi()
模块二:
import testimports
def printHi():
print(testimports.hiString)
如果我运行testimports,我会得到:
Traceback (most recent call last):
File "..file path snipped../testimports/src/testimports.py", line 2, in <module>
import moduleOne
File "..file path snipped../testimports/src/moduleOne.py", line 1, in <module>
import moduleTwo
File "..file path snipped../testimports/src/moduleTwo.py", line 1, in <module>
import testimports
File "..file path snipped../testimports/src/testimports.py", line 6, in <module>
moduleOne.sayHi()
AttributeError: 'module' object has no attribute 'sayHi'
但是,如果我取消注释 testimports 中的 import moduleTwo 行,程序会在停止工作之前到达这一点:
Traceback (most recent call last):
File "..file path snipped../testimports/src/testimports.py", line 1, in <module>
import moduleTwo
File "..file path snipped../testimports/src/moduleTwo.py", line 1, in <module>
import testimports
File "..file path snipped../testimports/src/testimports.py", line 2, in <module>
import moduleOne
File "..file path snipped../testimports/src/moduleOne.py", line 3, in <module>
class sayHi():
File "..file path snipped../testimports/src/moduleOne.py", line 4, in sayHi
moduleTwo.printHi()
AttributeError: 'module' object has no attribute 'printHi'
我将如何解决这个循环依赖问题?
【问题讨论】:
-
请搜索循环导入。像你这样的问题有数百个。 stackoverflow.com/search?q=%5Bpython%5D+circular+import
标签: python import python-3.x circular-dependency