在程式設計中使用函數時,理解作用域的概念非常重要。函數創建自己的私有名稱空間,與全域範圍分開。這意味著函數內聲明的變數只能在該函數內存取。
考慮以下程式碼:
done = False def function(): for loop: code if not comply: done = True while done == False: function()
意圖這段程式碼的作用是當function() 中的done 設定為True 時退出while 循環。然而,在 function() 將 did 設為 True 後,程式碼並沒有退出迴圈。
出現這個問題是因為 function() 中的變數 did 是局部變數變量,在函數的命名空間內創建。它與在函數外部定義的全域變數 did 是分開的。當 function() 給done一個新值時,實際上是修改局部變量,而不是全域變數。
要解決這個問題,你需要使用global 關鍵字在函數內明確引用全域變數。以下是修正後的程式碼:
def function(): global done for loop: code if not comply: done = True
透過使用 global,您可以確保函數內的 did 變數引用全域範圍中定義的相同變數。這允許您從函數內修改全域變數。
以上是何時對全域變數使用 Global 關鍵字?的詳細內容。更多資訊請關注PHP中文網其他相關文章!