Heim > Backend-Entwicklung > Python-Tutorial > Wann und wie tritt ein UnboundLocalError in Python auf?

Wann und wie tritt ein UnboundLocalError in Python auf?

Barbara Streisand
Freigeben: 2025-01-03 00:24:38
Original
914 Leute haben es durchsucht

When and How Does an UnboundLocalError Occur in Python?

Wann und wie kann ein Name in Python „ungebunden“ sein?

In der Dokumentation von Python wird erläutert, dass ein UnboundLocalError auftritt, wenn auf eine lokale Variable zugegriffen wird, bevor ihr ein zugewiesen wurde Wert. Es wird jedoch erwähnt, dass Python keine Deklarationen erzwingt. Dies wirft die Frage auf: Wie kann eine Variable „ungebunden“ sein, wenn sie nicht deklariert wurde?

UnboundLocalError und Namensbindung

In Python erfolgt die Variablenbindung durch Zuweisungen, Schleifen, Funktionen und Importe , Ausnahmebehandlung und Kontextverwaltung. Bindungen bestimmen den Gültigkeitsbereich einer Variablen. Ein Name gilt als lokal, wenn er innerhalb einer Funktion oder Methode gebunden ist, es sei denn, er wird mit den entsprechenden Anweisungen explizit als global oder nicht lokal markiert.

Ungebundener Name vs. undefinierter Name

Ein ungebundener Name bezieht sich auf eine Variable, auf die vor der Bindung verwiesen wurde. Dies unterscheidet sich von einem undefinierten Namen, der noch nicht erstellt oder zugewiesen wurde. Wenn ein ungebundener Name gefunden wird, löst Python einen UnboundLocalError aus.

Beispiel für UnboundLocalError

Bedenken Sie den folgenden Code:

def foo():
    if False:
        spam = 'eggs'
    print(spam)
Nach dem Login kopieren

Die Ausführung von foo() führt zu einem UnboundLocalError . Auf die Spam-Variable wird in print(spam) verwiesen, ohne dass ihr jemals ein Wert zugewiesen wird. Obwohl es in der if-Anweisung definiert ist, wird die Anweisung nicht ausgeführt, sodass Spam ungebunden bleibt.

UnboundLocalError verhindern

Um UnboundLocalError zu verhindern, stellen Sie sicher, dass lokalen Variablen ein Wert zugewiesen wird, bevor Sie auf sie verweisen . Alternativ können Sie globale Variablen explizit mit der globalen Anweisung oder nichtlokale Variablen mit der nichtlokalen Anweisung deklarieren.

Fazit

Zusammenfassend lässt sich sagen, dass ein Name ungebunden wird, wenn auf ihn verwiesen wird, bevor er innerhalb des aktuellen Bereichs gebunden wird. Dies liegt daran, dass Python keine Variablendeklarationen erfordert, wodurch Bindungsvorgänge an einer beliebigen Stelle innerhalb eines Codeblocks ausgeführt werden können. Die Verwendung einer ordnungsgemäßen Zuweisungs- und Bereichsverwaltung kann dazu beitragen, UnboundLocalError-Ausnahmen zu vermeiden.

Das obige ist der detaillierte Inhalt vonWann und wie tritt ein UnboundLocalError in Python auf?. 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