Unaufgelöste Variablenreferenz: Den „UnboundLocalError“ in Python 3 verstehen
Der bereitgestellte Codeausschnitt ist auf die Ausnahme „UnboundLocalError“ gestoßen, was darauf hinweist Es referenziert eine lokale Variable ('Var1'), bevor es ihr einen Wert zuweist. Dies tritt auf, wenn der Variablenname innerhalb einer Funktion deklariert wird, ihm jedoch vor seiner Verwendung kein Wert zugewiesen wird.
Um diesen Fehler zu beheben, befassen wir uns eingehender mit den Nuancen des Variablenbereichs in Python 3. Während die Code zunächst „Var1“ als globale Variable deklariert, erstellt die Zuweisungsanweisung „Var1 -= 1“ innerhalb der Funktion eine lokale Variable namens „Var1“. Dadurch wird die lokale Variable der Funktion geändert, nicht die außerhalb deklarierte globale Variable.
Um globale Variablen innerhalb einer Funktion zu verwenden, stellt Python 3 das Schlüsselwort „global“ bereit. Durch das Hinzufügen von „global Var1, Var2“ am Anfang der Funktion geben wir ausdrücklich an, dass wir beabsichtigen, die globalen Variablen mit den Namen „Var1“ und „Var2“ innerhalb des Funktionsumfangs zu referenzieren. Dies verhindert die Erstellung lokaler Variablen mit demselben Namen und löst somit den „UnboundLocalError“ auf.
In Python 3 gibt es die „nonlocal“-Anweisung auch zum Manipulieren von Variablen, die in einem umschließenden Bereich definiert sind. Beim Verschachteln von Funktionen wird jedoch typischerweise „nicht lokal“ verwendet, was im bereitgestellten Code nicht der Fall ist.
Für weitere Einblicke in den Variablenbereich und die Fehlerbehandlung dienen die Python-Website und die zugehörige Dokumentation als wertvolle Ressourcen. Durch das Verständnis der Prinzipien der Variablenreferenzierung und die Nutzung der entsprechenden Schlüsselwörter können Python-Entwickler den Variablenbereich effektiv verwalten und solche Laufzeitfehler vermeiden.
Das obige ist der detaillierte Inhalt vonWarum löst mein Python 3-Code einen „UnboundLocalError' aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!