2013-04-05 70 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