Heim > Backend-Entwicklung > Python-Tutorial > Warum löst mein Python-Code beim Zugriff auf eine globale Variable innerhalb einer Funktion einen „UnboundLocalError' aus?

Warum löst mein Python-Code beim Zugriff auf eine globale Variable innerhalb einer Funktion einen „UnboundLocalError' aus?

Mary-Kate Olsen
Freigeben: 2024-12-23 03:35:14
Original
799 Leute haben es durchsucht

Why Does My Python Code Throw an

Ungebundener lokaler Fehler: Lokale Variable „c“ überschattet globalen Geltungsbereich

In Python ist das Verständnis der Zuweisungsregeln für Variablen innerhalb von Funktionen von entscheidender Bedeutung mögliche Fehler verhindern. Bei einem „UnboundLocalError“ ist es wichtig zu untersuchen, ob eine in einer Funktion zugewiesene Variable versucht, eine globale Variable zu überschatten.

Berücksichtigen Sie den folgenden Code:

a, b, c = (1, 2, 3)

def test():
    print(a)
    print(b)
    print(c)
    c += 1
Nach dem Login kopieren

Beim Ausführen dieses Codes , werden Sie auf einen Fehler stoßen, der von der Zeile „print(c)“ herrührt. Die Fehlermeldung weist normalerweise darauf hin, dass im lokalen Bereich der test()-Funktion keine „c“-Variable zugewiesen ist.

Um diesen Fehler zu beheben, müssen Sie verstehen, dass Python Variablen in Funktionen je nach Position unterschiedlich behandelt sie werden zugewiesen. Wenn Sie versuchen, einer Variablen innerhalb einer Funktion einen Wert zuzuweisen, wird diese zu einer lokalen Variablen. In diesem Code möchten Sie jedoch, dass „c“ global bleibt.

Um zu deklarieren, dass die Variable „c“ in der test()-Funktion auf die globale Variable „c“ verweist, müssen Sie explizit die Variable „c“ verwenden. Schlüsselwort „global“ am Anfang der Funktion:

def test():
    global c
    print(a)
    print(b)
    print(c)
    c += 1
Nach dem Login kopieren

Durch das Hinzufügen von „global c“ erkennt Python, dass Sie beabsichtigen, mit der globalen Variablen „c“ und nicht mit einer lokalen zu arbeiten. Dadurch können Sie die globale „c“-Variable wie erwartet drucken und ändern.

Als neuere Funktion, die in Python 3 eingeführt wurde, können Sie „nonlocal c“ anstelle von „global c“ verwenden, um auf die nächstgelegene Einschließung zu verweisen Funktionsumfang, der eine „c“-Variable besitzt. Es ist jedoch erwähnenswert, dass die Verwendung von „nonlocal“ im alltäglichen Python-Codieren im Allgemeinen weniger verbreitet ist.

Das obige ist der detaillierte Inhalt vonWarum löst mein Python-Code beim Zugriff auf eine globale Variable innerhalb einer Funktion einen „UnboundLocalError' aus?. 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