Was ist ein ungebundener lokaler Fehler in Python?


Beste Antwort

Siehe diesen Code.

  1. counter = 0
  2. def increment ():
  3. counter + = 1
  4. increment ()

Python hat keine Variablendeklarationen, daher muss es den Umfang der Variablen selbst herausfinden. Dies geschieht nach einer einfachen Regel: Wenn es eine Zuordnung zu gibt Bei einer Variablen innerhalb einer Funktion wird diese Variable als lokal betrachtet. Daher ist die Zeile

counter + = 1

macht den Zähler implizit lokal zu increment (). Wenn Sie jedoch versuchen, diese Zeile auszuführen, wird versucht, den Wert des Zählers der lokalen Variablen zu lesen, bevor er zugewiesen wird in einem UnboundLocalError.

Um diesen Fehlertyp zu beheben, nehmen Sie folgende Änderungen vor:

  1. counter = 0
  2. def increment ():
  3. globaler Zähler
  4. counter + = 1
  5. increment ()

Alles Gute …!

Antwort

UnboundLocalError wird ausgelöst, wenn auf eine lokale Variable verwiesen wird, bevor sie referenziert wurde zugewiesen.

Dies ist eine Unterklasse von NameError.

Dies bedeutet, dass Sie eine Kennung haben, auf die Sie zugreifen wollten, bevor sie zugewiesen oder möglicherweise deklariert wurde.

Eine von die vielen Probleme von Sprachen ohne schwache Typisierungssemantik, Mehrfachvererbung und ohne gemeinsame Basisklasse oder gemeinsames Protokoll.

Dort i s zu viel Vertrauen in Ausnahmen, bei denen Introspektion und Compiler-Inferenz informativer sein könnten, bevor der Code ausgeführt werden könnte.

Was Sie Ihrer Meinung nach beim Eingeben von Zeichen sparen, um eine Validierung in Ihrem Code zu erhalten, zahlen Sie mit Stack-Traces .

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.