i

Exkurs - lokale/globale Variablen in Python

Gültigkeitsbereich und Lebensdauer von Variablen

Im folgenden wird das Verhalten von Variablen in Programmsituationen mit Haupt- und Unterprogrammen anhand von Beispielen erläutert.

Beispiel 1:

Die Variablen a und b sind hier die globale Variablen des Hauptprogramms, die Variablen x und y lokale Variablen des Unterprogramms inc.

Beispiel 2:

In diesem Programm ist die Variable y eine globale Variablen des Hauptprogramms und auch eine lokale Variablen des Unterprogramms inc. Es kommt hier aber nicht zu eine Konfliktsituation, da die beiden gleichnamigen Variablen bei der Programmausführung zu unterschiedlichen Namensräumen gehören.

Beispiel 3:

Dieses Programm zeigt, dass Parameter in einer Funktionsdefinition wie lokale Variablen behandelt werden. Es liegt also eine Situation analog zu Beispiel 2 vor.

Beispiel 4:

Man kann im Hauptprogramm dieselben Variablennamen benutzen wie in einer Funktionsdefinition. Dies führt nicht zu einem Namenskonflikt.

Beispiel 5:

In einem Unterprogramm kann man lesend auf eine globale Variable zugreifen, sofern es keine gleichnamige lokale Variable gibt. Das ist aber schlechter Programmierstil und man sollte solche Situationen erst gar nicht ermöglichen.

Beispiel 6:

Dieses Programm zeigt, dass die Lebensdauer einer lokalen Variablen endet, wenn das zugehörige Unterprogramm fertig ausgeführt ist. Im vorliegenden Beispiel kann man im Hauptprogramm daher nicht auf eine lokale Variable des Unterprogramms zugreifen.

Beispiel 7:

In diesem Programm ist x eine lokale Variable des Unterprogramms inc, da sie auf der linken Seite einer Zuweisung in diesem Unterprogramm auftaucht. Diese lokale Variable hat bei der Ausführung des Unterprogramms aber noch keinen Wert. Es kommt daher zu einer Fehlermeldung, weil der Ausdruck x+1 nicht ausgewertet werden kann.

Beispiel 8:

Durch den Zusatz global x im Unterprogramm inc wird hier festgelegt, dass x auch im Unterprogramm die globale Variable des Hauptprogramms ist. Damit ist ein lesender und schreibender Zugriff auf x auch im Unterprogramm möglich. Beachte, dass man normalerweise eine solche Programmsituation vermeidet.

Suche

v
6.3.2.13.3
dev.inf-schule.de/imperative-programmierung/python/konzepte/namensraeume/exkurs_variablenpython
dev.inf-schule.de/6.3.2.13.3

Rückmeldung geben