Читать книгу Routineaufgaben mit Python automatisieren - Al Sweigart - Страница 92

Lokale Variablen können im globalen Gültigkeitsbereich nicht verwendet werden

Оглавление

Wenn Sie das folgende Programm ausführen, erhalten Sie eine Fehlermeldung:

def spam():

eggs = 31337

spam()

print(eggs)

Die Ausgabe lautet wie folgt:

Traceback (most recent call last):

File "C:/test1.py", line 4, in <module>

print(eggs)

NameError: name 'eggs' is not defined

Das liegt daran, dass die Variable eggs nur in dem lokalen Gültigkeitsbereich existiert, der beim Aufruf von spam() erstellt wird (). Sobald die Programmausführung spam verlässt, wird dieser lokale Gültigkeitsbereich aber zerstört, weshalb es keine Variable namens eggs mehr gibt. Wenn das Programm versucht, print(eggs) auszuführen, meldet Python, dass eggs nicht definiert ist. Wenn Sie ein wenig darüber nachdenken, ist das auch tatsächlich sinnvoll. Während sich die Programmausführung im globalen Gültigkeitsbereich bewegt, gibt es keine lokalen Gültigkeitsbereiche und damit kann es auch keine lokalen Variablen geben. Aus diesem Grunde lassen sich im globalen Gültigkeitsbereich ausschließlich globale Variablen verwenden.

Routineaufgaben mit Python automatisieren

Подняться наверх