Stewdent.eu
▾

Gültigkeitsbereich von Variablen

Der Gültigkeitsbereich einer Variable bestimmt, in welchem Teil des Programms sie sichtbar und verwendbar ist. Das Verständnis von lokalem und globalem Gültigkeitsbereich hilft dir, Fehler zu vermeiden.

Zuletzt aktualisiert: 16. November 2025

★★☆☆☆ Stufe 2computingprogrammingvariablengültigkeitsbereichscope4 Min Lesezeit

Fehler melden

Wenn du eine Variable in Python erstellst, ist sie nicht überall in deinem Programm verfügbar. Der Gültigkeitsbereich (englisch: scope) einer Variable legt fest, von wo aus du auf sie zugreifen kannst. Wenn du das nicht verstehst, kann dein Programm sich auf seltsame Weise verhalten oder Fehler produzieren, die schwer zu finden sind.

Lokaler Gültigkeitsbereich

Eine Variable, die innerhalb einer Funktion definiert wird, hat einen lokalen Gültigkeitsbereich. Sie existiert nur, solange die Funktion ausgeführt wird, und verschwindet danach wieder.

def berechne_flaeche(breite, hoehe):
    flaeche = breite * hoehe   # lokale Variable
    return flaeche

berechne_flaeche(5, 3)
print(flaeche)   # Fehler! 'flaeche' existiert hier nicht

Die Variable flaeche ist nur innerhalb von berechne_flaeche sichtbar. Außerhalb der Funktion kennt Python sie nicht.

Globaler Gültigkeitsbereich

Eine Variable, die außerhalb aller Funktionen definiert wird, hat einen globalen Gültigkeitsbereich. Sie ist im gesamten Programm sichtbar.

spielerpunkte = 0   # globale Variable

def punkte_hinzufuegen(anzahl):
    print(f"Aktuelle Punkte: {spielerpunkte}")   # lesbar, kein Problem

punkte_hinzufuegen(10)
Hinweis

Du kannst eine globale Variable in einer Funktion lesen, ohne sie zu deklarieren. Wenn du sie jedoch verändern möchtest, musst du das Schlüsselwort global verwenden — andernfalls erstellt Python einfach eine neue lokale Variable mit demselben Namen.

Globale Variable in einer Funktion ändern

punkte = 0   # global

def tor_schiessen():
    global punkte   # Python anweisen, die globale Variable zu verwenden
    punkte += 1

tor_schiessen()
tor_schiessen()
print(punkte)   # 2

Ohne global punkte würde Python eine neue lokale Variable punkte erstellen, und die globale Variable bliebe unverändert bei 0.

Tipp

Es ist generell besser, globale Variablen zu vermeiden und stattdessen Rückgabewerte zu nutzen. Globale Variablen können schwer nachzuverfolgen sein, wenn dein Programm größer wird.

Warum ist das wichtig?

Betrachte dieses Beispiel mit zwei Funktionen, die denselben Variablennamen verwenden:

def funktion_a():
    zahl = 10   # lokal in funktion_a
    print(f"In A: {zahl}")

def funktion_b():
    zahl = 99   # lokal in funktion_b, unabhängig von funktion_a
    print(f"In B: {zahl}")

funktion_a()   # In A: 10
funktion_b()   # In B: 99

Jede Funktion hat ihre eigene zahl-Variable. Sie beeinflussen sich gegenseitig nicht — das ist einer der Vorteile des lokalen Gültigkeitsbereichs.

Warnung

Wenn du eine Variable benennst, die genauso heißt wie eine globale Variable, und sie in einer Funktion verwendest, ohne global zu deklarieren, kann das zu verwirrenden Fehlern führen. Python behandelt sie als komplett getrennte Variablen.

Zusammenfassung

GültigkeitsbereichWo definiertWo sichtbar
LokalInnerhalb einer FunktionNur in dieser Funktion
GlobalAußerhalb aller FunktionenIm gesamten Programm

Übungsaufgaben

Was gibt der folgende Code aus, und warum? def test(): x = 5 / test() / print(x)

Antwort anzeigen
Der Code wirft einen NameError, weil x eine lokale Variable innerhalb der Funktion test() ist. Außerhalb der Funktion existiert x nicht und Python kann sie nicht finden.

Ein Schüler möchte eine globale Variable 'leben' in einer Funktion um 1 verringern. Er schreibt: def verliere_leben(): leben -= 1. Was fehlt und warum?

Antwort anzeigen
Das Schlüsselwort 'global' fehlt. Die Funktion muss global leben deklarieren, bevor sie die Variable ändert. Ohne diese Zeile versucht Python, eine lokale Variable 'leben' zu verwenden, die noch nicht existiert, und wirft einen UnboundLocalError.