Python 中不使用'global' 關鍵字的全域變數存取
在Python 中,存取函數內的全域變數通常需要使用“全域”關鍵字。然而,在某些情況下,無需明確聲明全域變數即可被存取。
問題:
為什麼甚至可以存取全域變數不使用'global' 關鍵字,如下列程式碼片段所示:
sub = ['0', '0', '0', '0'] def getJoin(): return '.'.join(sub) print(getJoin()) # Output: '0.0.0.0'
The說明:
'global'關鍵字主要用於在本地上下文中修改或建立全域變數。但是,在某些情況下,由於以下原因,無需明確聲明全域變數即可存取全域變數:
範例:
考慮以下程式碼:
def bob(): me = "locally defined" # Defined only in local context print(me)
呼叫bob() 函數將列印“本地定義”,因為函數內部已定義了名為me 的本地變數。但是,如果我們嘗試在不使用“global”關鍵字的情況下在函數外部訪問我,則會導致“UnboundLocalError”。
print(me) # Asking for a global variable
結論:
雖然通常建議使用「global」關鍵字來修改或建立全域變量,但有時可以不明確地宣告全域變數的情況下訪問它們。此行為是由變數遮蔽和 Python 命名空間內的搜尋機制所引起的。但是,需要注意的是,依賴隱式全域變數存取可能會導致錯誤和混亂,因此最佳實踐是在必要時明確使用「global」關鍵字。
以上是什麼時候可以在不使用「global」關鍵字的情況下存取 Python 中的全域變數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!