2015-11-09 211 views
2

我正在使用導入模塊並使用其功能和變量的Python程序(版本2.7),如下所示。模塊全局變量

這是模塊。

# module.py 

variable = 2 

def function(number): 
    global variable 
    variable = number 

這是使用該模塊的程序。

# program.py 

from module import * 
print variable 
function(1) 
print variable 

程序打印如下:

2 
2 

但是,如果你改變program.py這樣:

# program.py 

import module 
print module.variable 
module.function(1) 
print module.variable 

該程序打印這樣的:

2 
1 

我有沒有ID ea爲什麼會發生這種情況。任何見解都會有所幫助。

感謝,

海龜

回答

0

使用global關鍵字是什麼,你現在要做的是不可能的。 在python中,全局變量僅爲global至其模塊不在模塊(不在例如C中)共享。有關該主題的更多信息,另見this PEP

此外,你在你的例子中做的是醜陋的全球濫用,導致難以維護和難以調試的程序。根據你的具體情況,有一個更好的方法來做到這一點。