Bei der Programmierung werden globale Variablen von allen Funktionen innerhalb eines Programms gemeinsam genutzt. Das Ändern einer globalen Variablen innerhalb einer Funktion sollte ihre Änderung im gesamten Programm widerspiegeln. Bestimmte Umstände können jedoch zu unerwartetem Verhalten führen, wie im folgenden Szenario hervorgehoben.
Das Problem:
Angesichts des folgenden Codeausschnitts:
<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>
Der Code scheint zu versuchen, die while-Schleife zu verlassen, wenn die Variable done innerhalb der Funktion auf True gesetzt ist. Das Problem tritt jedoch auf, wenn die Funktion() die globale Variable done nicht ordnungsgemäß ändert, was dazu führt, dass die while-Schleife auf unbestimmte Zeit fortgesetzt wird.
Die Lösung:
Das Problem liegt im Umfang der Funktion. Funktionen erstellen ihren eigenen Namensraum, was bedeutet, dass die Variable done in function() lokal erstellt wird und nicht mit der globalen Variable done identisch ist. Um auf die globale Variable „done“ zuzugreifen und diese zu ändern, muss das Schlüsselwort „global“ verwendet werden:
<code class="python">def function(): global done for loop: code if not comply: done = True</code>
Durch die Verwendung von „global done“ wird sichergestellt, dass Änderungen an der Variable „done“, die in function() vorgenommen werden, sich auf die globale Variable auswirken und den Exit aus der auslösen while-Schleife, wenn sie auf „True“ gesetzt ist.
Erklärung:
Das Schlüsselwort global wird verwendet, um globale Variablen innerhalb eines lokalen Bereichs, z. B. einer Funktion, zu deklarieren und zu ändern . Dadurch kann die Funktion mit der Originalvariablen arbeiten, anstatt eine neue lokale Kopie zu erstellen. Durch die Verwendung von global done kann die Funktion die globale done-Variable ändern und ihre Änderungen außerhalb der Funktion zugänglich machen.
Das obige ist der detaillierte Inhalt vonWarum ist es wichtig, das globale Schlüsselwort zum Ändern globaler Variablen in Funktionen zu verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!