在程式設計中,全域變數在程式中的所有函數之間共用。修改函數內部的全域變數應該反映其在整個程式中的變化。但是,某些情況可能會導致意外行為,如以下場景中突出顯示的那樣。
問題:
給出以下程式碼片段:
<code class="python">done = False def function(): for loop: code if not comply: done = True #let's say that the code enters this if-statement while done == False: function()</code>
當函數內的did 變數設定為True 時,程式碼似乎嘗試退出while 迴圈。然而,當 function() 沒有正確修改全域 did 變數時,就會出現問題,導致 while 迴圈無限期地繼續下去。
解:
問題位於函數的範圍內。函數創建自己的命名空間,這意味著 function() 中的 did 變數是本地創建的,與全域 did 變數不同。要存取和修改全域done變量,必須使用global關鍵字:
<code class="python">def function(): global done for loop: code if not comply: done = True</code>
使用全域done可以確保在function()中對done變數所做的更改影響全域變量,從而觸發退出while 設定為True 時循環。
說明:
global 關鍵字用於在局部範圍內聲明和修改全域變量,例如函數。它允許函數使用原始變量,而不是創建新的本地副本。透過使用全域done,函數可以修改全域done變量,使其變更可以在函數外部存取。
以上是為什麼使用 Global 關鍵字修改函數中的全域變數很重要?的詳細內容。更多資訊請關注PHP中文網其他相關文章!