Globale und lokale Variablen
Globale und lokale Variablen in Funktionen
Betrachten wir das folgende Beispielprogramm:
def foo(x, y): global a a = 42 x,y = y,x b = 33 b = 17 c = 100 print a,b,x,y a,b,x,y = 1,15,3,4 foo(17,4) print a,b,x,yDie Ausgabe sieht wie folgt aus:
42 17 4 17 42 15 3 4Dadurch dass die Variable a in der Funktion foo() als global deklariert wurde, kann man schreibend und lesend in der Funktion darauf zugreifen. Die formalen Parameter x und y erhalten beim Aufruf entsprechend die Werte 17 und 4. Man beachte jedoch, dass sich die formalen Parameter x und y wie lokale Variablen innerhalb von foo() verhalten. Das bedeutet, dass Wertänderungen keinen Einfluss auf die globalen Variablen x und y haben. In foo() wird auch eine Variable b benutzt, diese ist jedoch lokal und hat nichts mit der gleichnamigen Variablen b gemeinsam. Die Variable c führt in dieser (ohnehin sinnlosen) Funktion ein ebenfalls wirkungsloses Dasein. Ihr wird ein Wert zugewiesen, dann wird die Variable c nach dem Verlassen der Funktion wieder vergessen.