2013-04-05 71 views
0

这是在Python 2.7.3完成:导入变量赋予属性的python错误

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允许你导入变量。难道我做错了什么?

回答

2

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

此外,您不需要声明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 
+0

这不是全部代码。所以x是全球性的。我只是想我会说这是全球性的,也看看它是否会有所作为。 – madprogramer 2013-04-05 13:52:46