A Byte of Python

Lokale Variablen

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.

Benutzung lokaler Variablen

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
				
				

Ausgabe

				
$ python funk_lokal.py
x ist 50
Lokales x ist jetzt 2
x ist immer noch 50
				
				
				

So funktioniert es

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.

Benutzung der global-Anweisung

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
				
				

Ausgabe

				
$ python funk_global.py
x ist 50
Globales x ist jetzt 2
Der Wert von x ist 2
				
				

So funktioniert es

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.