Wenn wir Variablen innerhalb einer Funktion definieren, sind sie in keinster Weise mit anderen Variablen des gleichen Namens verbunden, die außerhalb der Funktion benutzt werden, d.h. die Variablennamen sind für die Funktion lokal gültig. Dies nennt man den Geltungsbereich einer Variablen. Alle Variablen haben als Geltungsbereich den Block, in dem sie erklärt werden, beginnend an der Stelle, wo der Name definiert wird.
Beispiel 7.3. Benutzung lokaler Variablen (funk_lokal.py)
#!/usr/bin/python def funk(x): print 'x ist', x x = 2 print 'Lokales x ist jetzt', x x = 50 funk(x) print 'x ist immer noch', x
Wenn wir das erste mal in der Funktion den Wert
mit dem Namen x
verwenden, benutzt Python
hierfür den Wert des in der Funktion angegeben gleichnamigen Parameters.
Als nächstes weisen wir x
den Wert 2
zu.
Der Name x
ist innerhalb unserer Funktion lokal gültig.
Wenn wir also den Wert von x
in der Funktion verändern,
wird hierdurch das im Hauptblock definierte x
nicht beeinflusst.
Mit der print
-Anweisung am Ende bestätigen wir, dass der Wert
von x
im Hauptblock tatsächlich unverändert geblieben ist.
Wenn Sie einem außerhalb der Funktion definierten Namen einen Wert zuweisen wollen,
dann müssen Sie Python mitteilen, dass der Name nicht lokal ist, sondern global.
Wir können dies mit der global
-Anweisung erreichen. Es ist unmöglich,
ohne die global
-Anweisung einer außerhalb der Funktion definierten Variablen
einen Wert zuzuweisen.
Sie können die Werte außerhalb der Funktion definierter Variablen benutzen (vorausgesetzt, dass es
innerhalb der Funktion keine gleichnamige Variable gibt). Dies wird jedoch nicht empfohlen und sollte
vermieden werden, da es einem Leser des Programms nicht sofort klar ist, wo diese Variable definiert
wurde. Wenn man die global
-Anweisung benutzt, ist damit sofort klar, dass
die Variable in einem äußeren Block definiert wurde.
Beispiel 7.4. Benutzung der global-Anweisung (funk_global.py)
#!/usr/bin/python def funk(): global x print 'x ist', x x = 2 print 'Globales x ist jetzt', x x = 50 funk() print 'Der Wert von x ist', x
Die Anweisung global
wird benutzt, um x
als
globale Variable zu erklären. Wenn wir also x
innerhalb der Funktion
einen Wert zuweisen, wird sich diese Veränderung widerspiegeln, wenn wir den Wert von
x
im Hauptblock benutzen.
Sie können in derselben global
-Anweisung mehr als eine globale Variable
angeben. Zum Beispiel: global x, y, z
.