Heim > Backend-Entwicklung > Python-Tutorial > Warum verursacht „c = 1' einen „UnboundLocalError' in Python-Funktionen?

Warum verursacht „c = 1' einen „UnboundLocalError' in Python-Funktionen?

Mary-Kate Olsen
Freigeben: 2024-12-23 01:11:14
Original
261 Leute haben es durchsucht

Why Does `c  = 1` Cause an `UnboundLocalError` in Python Functions?

UnboundLocalError: Variablenbereich in Funktionen mit Zuweisungen

Der UnboundLocalError tritt auf, wenn eine Variable innerhalb einer Funktion verwendet wird, ohne ordnungsgemäß definiert oder importiert zu werden. Um dieses Problem zu lösen, ist es wichtig, das Konzept des Bereichs zu verstehen.

Python unterscheidet zwischen lokalen und globalen Variablen innerhalb von Funktionen. Wenn einer Variablen innerhalb einer Funktion ein Wert zugewiesen wird, wird sie zu einer lokalen Variablen. Diese lokale Variable hat Vorrang vor allen globalen Variablen mit demselben Namen.

Im bereitgestellten Beispiel wird bei der Ausführung von c = 1 eine lokale Variable c erstellt. Diese lokale Variable überschreibt die globale Variable c mit dem Wert 3. Die print(c)-Anweisung versucht jedoch, auf die globale Variable c zuzugreifen, die zu diesem Zeitpunkt undefiniert ist, was den UnboundLocalError verursacht.

Um dieses Problem zu beheben , Python bietet zwei Optionen:

  • global: Durch die Deklaration einer Variablen als global innerhalb einer Funktion wird sichergestellt, dass sie referenziert die gleichnamige globale Variable. Durch Platzieren des globalen c als erste Zeile der test()-Funktion würde die print(c)-Anweisung auf das globale c verweisen und so den Fehler beseitigen.
  • nichtlokal (Python 3): Verwenden Sie nichtlokales c, um auf die c-Variable zuzugreifen, die im nächstgelegenen umschließenden Funktionsbereich definiert ist. Diese Option ist besonders bei Verschlüssen sinnvoll.

Das obige ist der detaillierte Inhalt vonWarum verursacht „c = 1' einen „UnboundLocalError' in Python-Funktionen?. 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