Heim >Backend-Entwicklung >Python-Tutorial >Warum verursacht „counter = 1' innerhalb einer Funktion einen „UnboundLocalError' in Python?
UnboundLocalError in Abschlüssen: Eine Analyse
Ein UnboundLocalError tritt auf, wenn eine im Code einer Funktion verwendete Variable nicht lokal, global oder als definiert ist Teil eines nichtlokalen Blocks. Betrachten Sie den folgenden Code:
counter = 0 def increment(): counter += 1 increment()
Das Ausführen dieses Codes führt zu einem UnboundLocalError. Warum passiert das?
Den Variablenbereich von Python verstehen
Python bestimmt den Variablenbereich dynamisch basierend auf der Zuweisung. Wenn eine Variable innerhalb einer Funktion zugewiesen wird, gilt sie als lokal für diese Funktion. In unserem Beispiel definiert die Zuweisung counter = 1 in increment() implizit counter als lokal für diese Funktion.
Lokale vs. globale Variablen
Python unterscheidet zwischen lokalen und globale Variablen. Globale Variablen werden auf Modulebene deklariert und sind im gesamten Programm zugänglich. Lokale Variablen hingegen werden innerhalb von Funktionen erstellt und existieren nur innerhalb dieser Funktionen.
In unserem Fall ist der Zähler nicht global definiert. Der Fehler tritt auf, weil Python versucht, den Wert des Zählers aus dem lokalen Bereich von increment() zu lesen, bevor er zugewiesen wurde, daher der UnboundLocalError.
Behebung des Fehlers
Um diesen Fehler zu beheben, können Sie einen der folgenden Schritte ausführen:
Das obige ist der detaillierte Inhalt vonWarum verursacht „counter = 1' innerhalb einer Funktion einen „UnboundLocalError' in Python?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!