Heim > Backend-Entwicklung > Python-Tutorial > Warum erhalte ich in Python 3 einen UnboundLocalError und wie kann ich ihn beheben?

Warum erhalte ich in Python 3 einen UnboundLocalError und wie kann ich ihn beheben?

Mary-Kate Olsen
Freigeben: 2024-12-06 15:37:11
Original
616 Leute haben es durchsucht

Why Do I Get an UnboundLocalError in Python 3, and How Can I Fix It?

Python 3: Den UnboundLocalError und seine Lösung verstehen

Wenn der UnboundLocalError in Python 3 auftritt, zeigt dies an, dass auf eine lokale Variable verwiesen wird vor seiner Zuweisung innerhalb einer Funktion. Lassen Sie uns die Ursache und eine wirksame Lösung für dieses Problem untersuchen.

Um den Fehler zu veranschaulichen, betrachten Sie den folgenden Codeausschnitt:

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

In diesem Code wird eine globale Variable Var1 definiert und einen Wert von 1 zugewiesen. Innerhalb der Funktion wird auf die Variable Var1 verwiesen, bevor sie in der bedingten Anweisung und der Operation Var1 -= 1 zugewiesen wird. Dies führt zum UnboundLocalError weil Python die Operation -= als Zuweisung innerhalb der Funktion interpretiert und eine lokale Variable mit demselben Namen wie die globale erstellt.

Um dieses Problem zu lösen, wird generell von der Verwendung globaler Variablen abgeraten. Bei Bedarf können Sie jedoch explizit eine globale Variable innerhalb der Funktion deklarieren, indem Sie am Anfang das Schlüsselwort global verwenden, wie im folgenden Code dargestellt:

def function(): 
    global Var1, Var2
    ...
Nach dem Login kopieren

Durch das Einfügen dieser Zeile weisen Sie Python an, nachzuschauen Erstellen Sie alle Verweise auf Var1 und Var2 im globalen Bereich, um den UnboundLocalError aufzulösen und Ihnen den Zugriff auf die globalen Variablen innerhalb der Funktion zu ermöglichen.

Es ist wichtig zu beachten, dass globale Variablen verwendet werden sollten auf notwendige Situationen beschränkt werden, da sie zu Verwirrung und Problemen bei der Codepflege führen können. Python bietet mehrere Mechanismen, wie zum Beispiel die in Python 3 eingeführte nichtlokale Anweisung, um Variablenbereiche effektiv zu verwalten und UnboundLocalErrors zu vermeiden.

Das obige ist der detaillierte Inhalt vonWarum erhalte ich in Python 3 einen UnboundLocalError 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