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,y
Die Ausgabe sieht wie folgt aus:
42 17 4 17
42 15 3 4
Dadurch 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.