【发布时间】:2012-10-06 18:52:08
【问题描述】:
有 2 个文件:
首先调用:main.py
import side
var = 1
side.todo()
第二个调用:side.py
import main
def todo():
print "printing variable from MAIN: %s" %(main.var)
运行 main.py 时出现错误:
AttributeError: 'module' object has no attribute 'todo'
在python中,你不能以这种方式借用和使用变量吗?
我已尝试搜索与此相关的文档,但找不到与此问题相关的任何内容。
当然,还有其他方法可以做到这一点?
【问题讨论】:
-
你有循环导入。解释见这里:Python: Circular (or cyclic) imports
-
是的,我现在明白模块之间的循环是不允许的。那么有没有办法克服这个问题呢?除了将所有内容放在一个源文件下。
-
@mrdigital:比这更微妙。允许模块之间的循环导入,但在执行此操作时必须小心。在您的情况下,您需要将
side.py中的每个实例main替换为__main__。 -
@icktoofay:太棒了,它有效!当然,这是有道理的