Python

⌘K
  1. Home
  2. Docs
  3. Python
  4. Python Scope

Python Scope

Python Scope: Der Scope (Gültigkeitsbereich) in Python bezieht sich auf den Bereich des Programms, in dem eine Variable definiert ist und darauf zugegriffen werden kann. Das Verständnis von Scopes ist wichtig, um zu wissen, wo Variablen existieren, wie sie verwendet werden und wann sie verfügbar sind. In Python gibt es verschiedene Arten von Scopes, darunter lokale, globale und eingebaute Scopes.

1. Lokale Variablen

Eine lokale Variable ist innerhalb einer Funktion oder eines Blocks definiert und ist nur innerhalb dieses Blocks zugänglich. Sie existiert nur während der Ausführung der Funktion.

Beispiel

def meine_funktion():
    lokal_variable = "Ich bin lokal"
    print(lokal_variable)

meine_funktion()  # Ausgabe: Ich bin lokal
# print(lokal_variable)  # Diese Zeile würde einen Fehler verursachen, da die Variable nicht definiert ist.

In diesem Beispiel ist lokal_variable nur innerhalb von meine_funktion() verfügbar.

2. Globale Variablen

Globale Variablen sind außerhalb aller Funktionen definiert und können von jeder Funktion im Programm verwendet werden. Sie haben einen globalen Scope.

Beispiel

globale_variable = "Ich bin global"

def andere_funktion():
    print(globale_variable)

andere_funktion()  # Ausgabe: Ich bin global

Hier kann die Funktion andere_funktion() auf die globale Variable globale_variable zugreifen.

3. Verwendung von global

Um innerhalb einer Funktion auf eine globale Variable zuzugreifen und diese zu ändern, muss die global-Anweisung verwendet werden. Ohne global würde Python eine neue lokale Variable erstellen.

Beispiel

globale_variable = 10

def erhöhe_variable():
    global globale_variable
    globale_variable += 5

erhöhe_variable()
print(globale_variable)  # Ausgabe: 15

In diesem Beispiel wird die globale Variable globale_variable innerhalb der Funktion erhöhe_variable() verändert.

4. Eingebaute Variablen

Python hat auch einen eingebauten Scope, der eine Sammlung von Namen und Objekten enthält, die immer verfügbar sind, wie z. B. Funktionen, die in der Python-Standardbibliothek definiert sind.

Beispiel

print(len("Hallo"))  # len ist eine eingebaute Funktion, die immer verfügbar ist.

5. Das LEGB-Prinzip

Python folgt dem LEGB-Prinzip, um den Scope von Variablen zu bestimmen. Die Abkürzung steht für:

  • Local: Der Scope innerhalb der Funktion.
  • Enclosing: Der Scope in einer umgebenden Funktion (bei verschachtelten Funktionen).
  • Global: Der globale Scope.
  • Built-in: Der Scope der eingebauten Namen und Funktionen.

Beispiel

x = "global"

def äußere_funktion():
    x = "enclosing"

    def innere_funktion():
        x = "local"
        print(x)  # Gibt "local" aus

    innere_funktion()
    print(x)  # Gibt "enclosing" aus

äußere_funktion()
print(x)  # Gibt "global" aus

6. Verschachtelte Funktionen und Scopes

In Python können Funktionen innerhalb anderer Funktionen definiert werden. Eine innere Funktion hat Zugriff auf die Variablen der äußeren Funktion.

Beispiel

def äußere_funktion():
    a = 10

    def innere_funktion():
        print(a)  # Zugriff auf die Variable a der äußeren Funktion

    innere_funktion()

äußere_funktion()  # Ausgabe: 10

Häufig gestellte Fragen

Was sind lokale und globale Variablen?

Lokale Variablen sind innerhalb einer Funktion definiert und nur dort zugänglich, während globale Variablen außerhalb aller Funktionen definiert sind und von jeder Funktion im Programm verwendet werden können.

Was ist das LEGB-Prinzip?

Das LEGB-Prinzip beschreibt die Reihenfolge, in der Python nach Variablen sucht: Local, Enclosing, Global und Built-in.

Wie kann ich eine globale Variable innerhalb einer Funktion ändern?

Um eine globale Variable innerhalb einer Funktion zu ändern, muss die global-Anweisung verwendet werden, um Python mitzuteilen, dass auf die globale Variable zugegriffen wird.