Lokale Variable die vor der Zuweisung referenziert wird in Python

Muhammad Waiz Khan 22 Juni 2021
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