Читать книгу 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.

Routineaufgaben mit Python automatisieren

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