Читать книгу Routineaufgaben mit Python automatisieren - Al Sweigart - Страница 95
Lokale und globale Variablen mit demselben Namen
ОглавлениеIn Python ist es zwar technisch möglich, denselben Namen für eine globale und eine lokale Variable und für lokale Variablen in verschiedenen Gültigkeitsbereichen zu verwenden, doch um sich das Leben zu erleichtern, sollten Sie so etwas tunlichst vermeiden. Um zu sehen, was in einem solchen Fall geschieht, geben Sie folgenden Code in den Dateieditor ein und speichern ihn als localGlobalSameName.py:
def spam():
eggs = 'spam local'
print(eggs) # Gibt 'spam local' aus
def bacon():
eggs = 'bacon local'
print(eggs) # Gibt 'bacon local' aus
spam()
print(eggs) # Gibt 'bacon local' aus
eggs = 'global'
bacon()
print(eggs) # Gibt 'global' aus
Wenn Sie dieses Programm ausführen, erhalten Sie folgende Ausgabe:
bacon local
spam local
bacon local
global
Die Ausführung dieses Programms können Sie sich auf https://autbor.com/localglobalsamename/ ansehen. Tatsächlich enthält dieses Programm drei verschiedene Variablen, die alle den Namen eggs tragen, was nicht gerade übersichtlich ist. Es handelt sich dabei um folgende Variablen:
1 Die Variable eggs im lokalen Gültigkeitsbereich des Aufrufs von spam() ()
2 Die Variable eggs im lokalen Gültigkeitsbereich des Aufrufs von bacon() ()
3 Die Variable eggs im globalen Gültigkeitsbereich ()
Da diese drei Variablen alle denselben Namen haben, kann es ziemlich kompliziert werden, nachzuvollziehen, welche zu einem bestimmten Zeitpunkt gerade verwendet wird. Daher sollten Sie es vermeiden, Variablen in unterschiedlichen Gültigkeitsbereichen denselben Namen zu geben.