lokale Python-Variable, auf die vor der Zuweisung verwiesen wird

Wenn Sie mit der Einfuhrung von Funktionen in Ihren Code beginnen, werden Sie irgendwann auf einen UnboundLocalError stoßen. Dieser Fehler tritt auf, wenn Sie versuchen, eine Variable zu verwenden, bevor sie im lokalen Kontext zugewiesen wurde.

In diesem Leitfaden sprechen wir daruber, was dieser Fehler bedeutet und warum er ausgelöst wird. Wir fuhren ein Beispiel fur diesen Fehler in Aktion durch, damit Sie verstehen, wie Sie ihn beheben können.

Was ist UnboundLocalError: Auf lokale Variable wird vor der Zuweisung verwiesen?

Der Versuch, einer Variablen ohne lokalen Gultigkeitsbereich einen Wert zuzuweisen, kann zu diesem Fehler fuhren:

Python hat eine einfache Regel, um den Gultigkeitsbereich einer Variablen zu bestimmen. Wenn eine Variable in einer Funktion zugewiesen wird, ist diese Variable lokal. Dies liegt daran, dass angenommen wird, dass Sie beim Definieren einer Variablen innerhalb einer Funktion nur innerhalb dieser Funktion darauf zugreifen mussen.

In Python gibt es zwei Gultigkeitsbereiche von Variablen: lokal und global. Auf globale Variablen kann im gesamten Programm zugegriffen werden; Auf lokale Variablen kann nur innerhalb der Funktion zugegriffen werden, in der sie ursprunglich definiert wurden.

Schauen wir uns an, wie dieser Fehler behoben wird.

Ein Beispielszenario

Wir werden ein Programm schreiben, das die Note eines Schulers im Unterricht berechnet.

Wir beginnen mit der Deklaration von zwei Variablen:

81 % der Teilnehmer gaben an, dass sie sich nach der Teilnahme an einem Bootcamp sicherer in Bezug auf ihre Berufsaussichten im Tech-Bereich fuhlten. Lassen Sie sich noch heute in ein Bootcamp einweisen.

Der durchschnittliche Bootcamp-Absolvent verbrachte weniger als sechs Monate im Karriereubergang, vom Beginn eines Bootcamps bis zur Suche nach seinem ersten Job.

Diese Variablen speichern die numerischen und Briefnoten, die ein Schuler erworben hat. Standardm√§√üig ist der Wert von "Buchstabe‚" ist "F‚". Als N√§chstes schreiben wir eine Funktion, die die Buchstabennote eines Schulers basierend auf seiner numerischen Note mit einem "if‚" Anweisung:

Schließlich rufen wir unsere Funktion auf:

Diese Codezeile gibt den von der Funktion calculate_grade() zuruckgegebenen Wert an die Konsole aus. Wir ubergeben einen Parameter in unsere Funktion: numerisch. Dies ist der numerische Wert der Note, die ein Schuler erhalten hat.

Lassen Sie unseren Code ausfuhren und sehen, was passiert:

Ein Fehler ist aufgetreten.

Die Lösung

Unser Code gibt einen Fehler zuruck, weil wir auf "Buchstabe‚" verweisen, bevor wir ihn zuweisen.

Wir haben den Wert von "numerical‚" auf 42 gesetzt Legen Sie einen Wert fur jede Note uber 50 fest. Das bedeutet, dass beim Aufrufen unserer Funktion calculate_grade() unsere Ruckgabeanweisung den Wert nicht kennt, auf den wir uns beziehen.

Wir tun definieren ‚ÄûBuchstabe‚" zu Beginn unseres Programms. Wir definieren es jedoch im globalen Kontext. Python behandelt ‚ÄûRucksendebrief‚" B. versuchen, eine lokale Variable namens "Buchstabe‚" zuruckzugeben, keine globale Variable.

Wir l√∂sen dieses Problem auf zwei Arten. Zuerst k√∂nnen wir unserem Code eine else-Anweisung hinzufugen. Dadurch wird sichergestellt, dass wir "Brief‚" bevor wir versuchen, es zuruckzugeben:

Lassen Sie uns versuchen, unseren Code erneut auszufuhren:

Unser Code druckt erfolgreich die Note des Schulers aus.

Wenn Sie ein ‚Äûwenn‚" -Anweisung, in der Sie eine Variable deklarieren, sollten Sie sicherstellen, dass ein "sonst‚" Aussage an Ort und Stelle. Dadurch wird sichergestellt, dass Sie auch dann, wenn keine Ihrer if-Anweisungen True ergibt, einen Wert fur die Variable festlegen k√∂nnen, mit der Sie arbeiten m√∂chten.

Alternativ k√∂nnten wir die "globale‚" -Schlusselwort, um unser globales Schlusselwort im lokalen Kontext in unserer Funktion calculate_grade() verfugbar zu machen. Dieser Ansatz fuhrt jedoch wahrscheinlich zu verwirrendem Code und anderen Problemen. Im Allgemeinen sollten Variablen nicht mit "global‚" es sei denn, es ist unbedingt erforderlich. Ihre erste und wichtigste Anlaufstelle sollte immer sein, sicherzustellen, dass eine Variable richtig definiert ist.

Im obigen Beispiel haben wir beispielsweise nicht uberpruft, ob die Variable "Buchstabe‚" in allen Anwendungsf√§llen definiert wurde.

Das war’s! Wir haben den lokalen Variablenfehler in unserem Code behoben.

Schlussfolgerung

Der UnboundLocalError: lokale Variable, auf die verwiesen wird, bevor ein Zuweisungsfehler ausgelöst wird, wenn Sie versuchen, a . zuzuweisen Wert in eine lokale Variable ein, bevor sie deklariert wurde. Sie können diesen Fehler beheben, indem Sie sicherstellen, dass eine lokale Variable deklariert wird, bevor Sie ihr einen Wert zuweisen.

Jetzt sind Sie bereit, UnboundLocalError Python zu lösen Fehler wie ein professioneller Entwickler!

Shop

Learn programming in R: courses

$

Best Python online courses for 2022

$

Best laptop for Fortnite

$

Best laptop for Excel

$

Best laptop for Solidworks

$

Best laptop for Roblox

$

Best computer for crypto mining

$

Best laptop for Sims 4

$

Latest questions

NUMPYNUMPY

psycopg2: insert multiple rows with one query

12 answers

NUMPYNUMPY

How to convert Nonetype to int or string?

12 answers

NUMPYNUMPY

How to specify multiple return types using type-hints

12 answers

NUMPYNUMPY

Javascript Error: IPython is not defined in JupyterLab

12 answers

News


Wiki

Python OpenCV | cv2.putText () method

numpy.arctan2 () in Python

Python | os.path.realpath () method

Python OpenCV | cv2.circle () method

Python OpenCV cv2.cvtColor () method

Python - Move item to the end of the list

time.perf_counter () function in Python

Check if one list is a subset of another in Python

Python os.path.join () method