这是在python 2.7.3中完成的:
x.py:
import y
global path_variable
path_variable = "a_path"
y.procedure()
y.py:
import x
def procedure():
return x.path_variable
现在当我运行X时,我得到了这个奇怪的错误:
AttributeError: 'module' object has no attribute 'path_variable'
这是为什么?据我所知,python允许您导入变量。我做错了吗?
答案 0 :(得分:2)
我认为这只是循环依赖的问题。基本上,您可以修复此代码,但您可能希望重新考虑您的包设计,以便您没有两个相互导入的模块。
此外,您不需要将path_variable
声明为global
,因为它仅在本地范围内更改全局范围内的变量时使用,并且通常不鼓励在Python中使用它。
<强> x.py 强>
import y
path_variable = "a_path"
if __name__ == "__main__":
y.procedure()
<强> y.py 强>
import x
def procedure():
return x.path_variable