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

Die Anweisung global

Оглавление

Wenn Sie innerhalb einer Funktion eine globale Variable bearbeiten wollen, müssen Sie die Anweisung global verwenden. Eine Zeile wie global eggs am Anfang einer Funktion weist Python an: »In dieser Funktion bezieht sich eggs auf die globale Variable, also erstelle keine lokale Variable mit diesem Namen!« Geben Sie als Beispiel den folgenden Code in den Dateieditor ein und speichern Sie ihn als globalStatement.py:

def spam():

global eggs

eggs = 'spam'

eggs = 'global'

spam()

print(eggs)

Wenn Sie dieses Programm ausführen, gibt der letzte Aufruf von print() Folgendes aus:

spam

Die Ausführung dieses Programms können Sie sich auf https://autbor.com/globalstatement/ ansehen. Da eggs am Anfang von spam() als global deklariert ist (), erfolgt die Zuweisung von 'spam' zur globalen Variablen eggs (). Es wird keine lokale Variable namens eggs erstellt.

Es gibt vier Regeln, um lokale und globale Variablen zu unterscheiden:

 Wenn eine Variable in einem globalen Gültigkeitsbereich verwendet wird (also außerhalb irgendeiner Funktion), dann handelt es sich um eine globale Variable.

 Wird in einer Funktion die Anweisung global für die Variable verwendet, handelt es sich um eine globale Variable.

 Wird die Variable in einer Zuweisungsanweisung innerhalb der Funktion verwendet, handelt es sich um eine lokale Variable.

 Wird die Variable dagegen nicht in einer Zuweisungsanweisung verwendet, handelt es sich um eine globale Variable.

Um ein besseres Gefühl für diese Regeln zu bekommen, schauen Sie sich das folgende Beispielprogramm an. Geben Sie den folgenden Code in den Dateieditor ein und speichern Sie ihn als sameNameLocalGlobal.py:

def spam():

global eggs

eggs = 'spam' # Globale Variable

def bacon():

eggs = 'bacon' # Lokale Variable

def ham():

print(eggs) # Globale Variable

eggs = 42 # Globale Variable

spam()

print(eggs)

In der Funktion spam() ist eggs die globale Variable dieses Namens, da zu Anfang die Anweisung global steht (). Dagegen ist eggs in bacon() eine lokale Variable, da es in dieser Funktion eine Zuweisungsanweisung für sie gibt (). In ham() ist eggs jedoch wiederum die globale Variable, da es in dieser Funktion zwar keine global-Anweisung, aber auch keine Zuweisungsanweisung gibt. Wenn Sie same NameLocalGlobal.py ausführen, erhalten Sie folgende Ausgabe:

spam

Die Ausführung dieses Programms können Sie sich auf https://autbor.com/sameNameLocalGlobal/ ansehen. Innerhalb einer Funktion ist eine Variable entweder global oder lokal. Es ist nicht möglich, im Code einer Funktion sowohl eine lokale als auch eine globale Variable mit demselben Namen zu verwenden.

Routineaufgaben mit Python automatisieren

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