Lokale Variable die vor der Zuweisung referenziert wird in Python
In diesem Tutorial wird erklärt, warum der Fehler local variable referenced before assignment
auftritt und wie er behoben werden kann.
Die local variable referenced before assignment
tritt auf, wenn eine Variable vor der Zuweisung innerhalb des Funktionskörpers referenziert wird. Der Fehler tritt normalerweise auf, wenn der Code versucht, auf die globale Variable zuzugreifen. Da die globalen Variablen einen globalen Gültigkeitsbereich haben und von überall im Programm aus zugegriffen werden kann, versucht der Benutzer normalerweise, die globale Variable innerhalb einer Funktion zu verwenden.
In Python müssen wir die Variable nicht deklarieren oder initialisieren, bevor wir sie verwenden können. Eine Variable wird standardmäßig immer als lokal betrachtet. Wenn das Programm versucht, auf die globale Variable innerhalb einer Funktion zuzugreifen, ohne sie als global anzugeben, gibt der Code daher den Fehler local variable referenced before assignment
zurück, da die Variable, auf die verwiesen wird, als lokale Variable betrachtet wird.
Die Lösung des local variable referenced before assignment
Fehlers in Python
Wir können die Variable mit dem Schlüsselwort global
in Python als global deklarieren. Sobald die Variable als global deklariert ist, kann das Programm innerhalb einer Funktion auf die Variable zugreifen, und es tritt kein Fehler auf.
Der folgende Beispielcode zeigt das Codeszenario, in dem das Programm den Fehler local variable referenced before assignment
ausführt.
count = 10
def myfunc():
count = count + 1
print(count)
myfunc()
Ausgabe:
UnboundLocalError: local variable 'count' referenced before assignment
Wir müssen die Variable count
mit dem Schlüsselwort global
als global deklarieren, um diesen Fehler zu beheben. Der folgende Beispielcode zeigt, wie der Fehler mit dem Schlüsselwort global
im obigen Codeszenario behoben werden kann.
count = 10
def myfunc():
global count
count = count + 1
print(count)
myfunc()
Ausgabe:
11