0

这是在 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

现在当我运行 XI 得到这个奇怪的错误:

AttributeError: 'module' object has no attribute 'path_variable'

为什么是这样?据我所知,python 允许您导入变量。难道我做错了什么?

4

1 回答 1

3

我相信这只是一个循环依赖的问题。基本上,您可以修复此代码,但您可能想要重新考虑您的包设计,以便您没有两个相互导入的模块。

此外,您不需要声明path_variableglobal因为它仅在局部范围内更改全局范围内的变量时使用,并且在 Python 中通常也不鼓励使用它。

x.py

import y
path_variable = "a_path"

if __name__ == "__main__":
    y.procedure()

y.py

import x
def procedure():
    return x.path_variable
于 2013-04-05T05:30:05.813 回答