Читать книгу Routineaufgaben mit Python automatisieren - Al Sweigart - Страница 85
Def-Anweisungen mit Parametern
ОглавлениеBeim Aufruf von Funktionen wie print() und len() übergeben Sie Werte, sogenannte Argumente, indem Sie sie in die Klammern schreiben. Auch Ihre eigenen Funktionen können Sie so definieren, dass sie Argumente annehmen. Geben Sie das folgende Beispiel im Dateieditor ein und speichern Sie es als helloFunc2.py:
def hello(name):
print('Hello ' + name)
hello('Alice')
hello('Bob')
Wenn Sie dieses Programm ausführen, erhalten Sie folgende Ausgabe:
Hello Alice
Hello Bob
Die Ausführung dieses Programms können Sie sich auf https://autbor.com/hellofunc2/ ansehen. Die Definition der Funktion hello() in diesem Programm schließt den Parameter name ein (). Ein Parameter ist eine Variable, die Argumente enthält. Wird eine Funktion mit Argumenten aufgerufen, so werden diese Argumente in den Parametern gespeichert. Beim ersten Mal wird die Funktion hello() mit dem Argument 'Alice' aufgerufen (). Die Programmausführung fährt mit der Funktion fort, wobei die Variable name automatisch auf 'Alice' gesetzt wird. Dieser Text wird in die Ausgabe der Anweisung print() aufgenommen ().
Sobald die Funktion die Steuerung zurückgibt (wenn die Programmausführung also die Funktion verlässt und normal fortfährt), geht der in dem Parameter gespeicherte Wert jedoch verloren. Wenn Sie in dem vorstehenden Programm hinter hello('Bob') die Anweisung print(name) einfügen, erhalten Sie die Fehlermeldung NameError, da es zu diesem Zeitpunkt keine Variable namens name mehr gibt – sie ist nach dem Abschluss des Funktionsaufrufs hello('Bob') zerstört worden.
Das ähnelt dem Prinzip, dass auch die Variablen im Programm nach Beendigung des Programms vergessen werden. Weiter hinten in diesem Kapitel werde ich im Zusammenhang mit dem lokalen Gültigkeitsbereich von Funktionen noch ausführlicher darauf eingehen.