Heim > Backend-Entwicklung > Python-Tutorial > Warum löst Python einen „UnboundLocalError' aus und wie kann ich ihn beheben?

Warum löst Python einen „UnboundLocalError' aus und wie kann ich ihn beheben?

Mary-Kate Olsen
Freigeben: 2024-11-25 07:37:21
Original
990 Leute haben es durchsucht

Why Does Python Throw an

Fehler: „UnboundLocalError: lokale Variable, auf die vor der Zuweisung verwiesen wird“ in Python

Wenn dieser Fehler auftritt, liegt das daran, dass Sie es versuchen Auf eine lokale Variable zugreifen, bevor sie initialisiert oder definiert wurde. Sehen wir uns den Code an, der dieses Problem verursacht:

Var1 = 1
Var2 = 0

def function():
    if Var2 == 0 and Var1 > 0:
        print("Result 1")
    elif Var2 == 1 and Var1 > 0:
        print("Result 2")
    elif Var1 < 1:
        print("Result 3")
    Var1 -= 1

function()
Nach dem Login kopieren

Dieser Code definiert zwei Variablen, Var1 und Var2, außerhalb der Funktion function(). Innerhalb der Funktion versuchen wir, Var1 zu manipulieren, was in Ordnung ist. Das Problem entsteht jedoch, wenn wir auf Var1 zugreifen, ohne es innerhalb des Funktionsumfangs zu initialisieren.

Lösung mit globalen Variablen:

Um dieses Problem zu beheben, können wir Var1 als deklarieren eine globale Variable innerhalb der Funktion. Dies weist Python an, die außerhalb der Funktion definierte Variable Var1 zu verwenden, anstatt darin eine neue lokale Variable zu erstellen. Um dies zu erreichen, fügen Sie am Anfang der Funktion die folgende Zeile hinzu:

global Var1
Nach dem Login kopieren

Alternative Lösung: Verwenden Sie nichtlokale Variablen:

Python 3 führt die nichtlokale Anweisung ein, Damit können Sie eine Variable ändern, die in einem umschließenden Bereich definiert ist. Anstatt Var1 als globale Variable zu deklarieren, können wir den folgenden Code innerhalb der Funktion verwenden:

nonlocal Var1
Var1 -= 1
Nach dem Login kopieren

Schlussfolgerung:

UnboundLocalError tritt auf, wenn Sie versuchen, auf a zu verweisen Lokale Variable, die nicht initialisiert oder definiert wurde. Um dies zu beheben, können Sie die Variable entweder als global deklarieren oder das Schlüsselwort nonlocal verwenden, um auf die Variable zuzugreifen, die in einem umschließenden Bereich definiert ist.

Das obige ist der detaillierte Inhalt vonWarum löst Python einen „UnboundLocalError' aus und wie kann ich ihn beheben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage