2013-12-18 25 views
0

內如果我開始一個腳本的東西,如:從變異的全局變量的函數

someVar = "none" 

def someFunction(): 
    if whatever is whatever: 
     someVar = "somethingElse" 
    return someVar 

然後,在不同的功能我檢查someVar,將someVar是「無」或「somethingElse」?

我希望「somethingElse」,但相反,寫了一個函數,將someVar設置爲別的東西,我發現someVar仍然是「none」。

這是預期的嗎?如果你在一個函數中操縱一個全局變量,那麼全局變量會變化嗎?

+1

我認爲是更好的風格傳遞變量作爲參數傳遞給函數,或創建一個包含該變量和函數的類。在Python中使用全局變量通常是一個壞主意。 – SethMMorton

回答

6

可以使用global關鍵字,這意味着你將修改全局變量someVar

someVar = "none" 

def someFunction(): 
    global someVar 
    if whatever is whatever: 
     someVar = "somethingElse" 
    return someVar 
+0

謝謝!很快接受。所以在函數中的任何地方說「global someVar」僅僅意味着函數中對該變量的任何進一步引用都在全局級別 –

+0

是的,這就是全球性的。 –