global?

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
sma
User
Beiträge: 3018
Registriert: Montag 19. November 2007, 19:57
Wohnort: Kiel

Irgendwie hat noch niemand die ursprüngliche Frage beantwortet. Warum gibt es die `global`-Anweisung. Dabei ist die Antwort einfach. Python erfordert es nicht, Variablen vor ihrer Benutzung deklarieren zu müssen. Variablen in einer Funktion gelten immer als lokal in dieser Funktion. Hat man folgenden Code, so kann man die Variable außerhalb der Funktion deshalb nicht erreichen:

Code: Alles auswählen

a = 0
def f():
    a = 3
Möchte man, dass eine Zuweisung an eine Variable innerhalb einer Funktion nicht eine neue lokale Variable erschafft, sondern eine äußere globale Variable referenziert, so muss man dies mit `global` tun:

Code: Alles auswählen

a = 0
def f():
    global a
    a = 3
Hinweis: Globale Variablen, die man nicht verändern will, erfordern kein `global`. Sie sind, sofern nicht durch eine gleichnamige lokale Variable überschattet, immer erreichbar.

Stefan
Antworten