165
6.4
Ausführung von Funktionen
Abb. 6.4: Namensräume des Hauptprogramms und der Funktion g()
6.4.2 Seiteneffekte – die global-Anweisung
Innerhalb einer Funktion können Variablen des Hauptprogramms zwar gelesen werden
(sofern es keine lokale Variable gleichen Namens gibt), aber man kann sie nicht so ohne
Weiteres verändern. Probieren Sie es aus!
Der Aufruf der Funktion
verdopple() führte zu einem Laufzeitfehler. Die Anweisung #1
kann nicht ausgeführt werden, weil der Name x im lokalen Namensraum der Funktion
nicht bekannt ist.
>>> def verdopple ():
x=x*2 #1
>>>x=2
>>> verdopple()
Traceback (most recent call last):
File "<pyshell#39>", line 1, in <module>
verdopple()
File "<pyshell#37>", line 2, in verdopple
x=x*2
UnboundLocalError: local variable 'x' referenced before assignment
Hauptprogramm
globaler Namensraum:
x: 1
g: Funktion
lokaler Namensraum:
x: 1
g: Funktion
g()
globaler Namensraum:
x: 1
g: Funktion
lokaler Namensraum:

Get Python 3 - Lernen und professionell anwenden now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.