Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Industrial programming >> Python

Python Global, Local & Nonlocal Variablen verstehen

Python Global, Local & Nonlocal Variablen verstehen

Meistern Sie die Verwendung von globalen, lokalen und nonlokalen Variablen in Python und wissen Sie, wann Sie welche für sauberen, wartbaren Code anwenden.

Video: Python Lokale und Globale Variablen

Globale Variablen

In Python ist eine Variable, die außerhalb jeder Funktion – auf Modulebene – deklariert wird, eine globale Variable. Sie kann von überall im Modul gelesen werden, muss aber mit dem global-Schlüsselwort deklariert werden, wenn Sie sie innerhalb einer Funktion modifizieren möchten.

Beispiel: Globale Variable erstellen und lesen

x = "global"
def foo():
    print("x inside:", x)
foo()
print("x outside:", x)

Ausgabe

x inside: global
x outside: global

Der Versuch, x ohne globale Deklaration neu zuzuweisen, führt zu einem UnboundLocalError:

x = "global"
def foo():
    x = x * 2
    print(x)
foo()

Ausgabe

UnboundLocalError: local variable 'x' referenced before assignment

Um eine globale Variable innerhalb einer Funktion zu modifizieren, verwenden Sie das global-Schlüsselwort:

x = "global"
def foo():
    global x
    x = x * 2
    print(x)
foo()

Ausgabe

globalglobal

Lokale Variablen

lokale Variable ist innerhalb eines Funktionskörpers definiert und existiert nur während der Ausführung dieser Funktion. Sie kann außerhalb der Funktion nicht zugegriffen werden.

Beispiel: Zugriff auf lokale Variable außerhalb ihres Gültigkeitsbereichs

def foo():
    y = "local"
foo()
print(y)

Ausgabe

NameError: name 'y' is not defined

Lokale Variable korrekt definieren und verwenden:

def foo():
    y = "local"
    print(y)
foo()

Ausgabe

local

Globale und lokale Variablen kombinieren

Es ist üblich, beide Gültigkeitsbereiche im selben Modul zu nutzen. Das global-Schlüsselwort stellt sicher, dass eine Variable auf die Modul-Instanz verweist.

x = "global "
def foo():
    global x
    y = "local"
    x = x * 2
    print(x)
    print(y)
foo()

Ausgabe

global global
local

Wenn eine lokale Variable denselben Namen wie eine globale hat, sind sie unabhängig:

x = 5
def foo():
    x = 10
    print("local x:", x)
foo()
print("global x:", x)

Ausgabe

local x: 10
global x: 5

Nonlokale Variablen

Verschachtelte Funktionen können auf Variablen aus ihrem umgebenden (aber nicht globalen) Gültigkeitsbereich zugreifen und diese modifizieren, indem sie das nonlocal-Schlüsselwort verwenden.

def outer():
    x = "local"
    def inner():
        nonlocal x
        x = "nonlocal"
        print("inner:", x)
    inner()
    print("outer:", x)
outer()

Ausgabe

inner: nonlocal
outer: nonlocal

Hinweis: Das Aktualisieren einer nonlokalen Variable innerhalb der inneren Funktion aktualisiert die Variable im Gültigkeitsbereich der äußeren Funktion.

Python

  1. C Variablen, Konstanten und Literale: Ein vollständiger Leitfaden
  2. Python-Schlüsselwörter & Bezeichner: Reservierte Wörter & Benennungskonventionen meistern
  3. Python-Anweisungen, Einrückung & Kommentare: Klare Anleitung
  4. Python-Variablen, Konstanten & Literale – Umfassender Leitfaden
  5. Python-Typkonvertierung & Casting meistern: Umfassender Leitfaden
  6. Python I/O & Modul-Importe meistern: Praxisleitfaden
  7. Pythons global-Schlüsselwort meistern: Wie & wann man es verwendet
  8. Zahlen, Typkonvertierung und Mathematik in Python meistern
  9. Verzeichnis- und Dateioperationen in Python meistern
  10. Python-Fehler & eingebaute Exceptions meistern