导入变量会给出属性错误python

时间:2013-04-05 05:16:50

标签: python variables import attributeerror

这是在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允许您导入变量。我做错了吗?

1 个答案:

答案 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