因此,這裏是發生了什麼事情無法訪問蟒蛇全局變量(很奇怪)
x = []
def test():
return x
def init():
x.append('blah')
問題的簡化版本:()函數是在一個單獨的文件中運行init和更新全局變量x正確。但是在運行test()函數後,我總是會得到[]的值而不是['blah']。但在這裏它變得奇怪。如果我要運行這個函數(whatever_file.py是存儲這些函數的名字):
x = []
def test():
from whatever_file import x
return x
def init():
x.append('blah')
這工作正常。我會得到['blah']返回。我曾嘗試將全局x放入init和test函數中,但也無濟於事。我不知道發生了什麼事
任何幫助嗎?
作爲另一個方面說明,如果我創建一個類,中日eclass的靜態方法,更新的全球變量被認爲是好的。只需使用獨立函數即可解決問題 –
您的變量僅在MODULE中是全局的,在其外部不可見(這就是爲什麼它在導入時會起作用)。全局變量通常是一個壞主意---你想做什麼?如果您覺得您必須使用「全局」關鍵字。 – Escualo
所以就是這樣。在這兩個函數中使用全局x仍然不會讓我的test()函數識別全局變量。那是怎麼回事? –