Nested Functions
Lektion 2 von 12 im Kurs Python-Dekoratoren von Coddy.
Bevor wir uns mit Decorators beschäftigen, müssen wir einige wichtige Konzepte im Zusammenhang mit Python-Funktionen verstehen.
In Python können wir eine Funktion innerhalb einer anderen einfügen, was auch als verschachtelte Funktion (nested function) bezeichnet wird.
Zum Beispiel:
def outer_function():
print("This is the outer function.")
def inner_function():
print("This is the inner function.")
inner_function()
In diesem Beispiel enthält outer_function eine verschachtelte Funktion namens inner_function.
Wenn outer_function aufgerufen wird, gibt sie zuerst "This is the outer function." aus und ruft dann inner_function auf. inner_function gibt dann "This is the inner function." aus.
Beachten Sie, dass inner_function nur von innerhalb von outer_function aufgerufen werden kann.
Wenn Sie versuchen, inner_function außerhalb von outer_function aufzurufen, erhalten Sie einen NameError, der besagt, dass inner_function nicht definiert ist.
Aufgabe
EinfachSchreiben Sie eine Funktion namens greeting_generator, die einen Namen als Argument entgegennimmt und eine Begrüßungsnachricht zurückgibt, die den Namen enthält.
Die Begrüßungsnachricht soll von einer geschachtelten Funktion namens get_greeting erzeugt werden, die den Namen als Argument entgegennimmt und einen String zurückgibt, der "Hello, [name]!" lautet.
Hier ist ein Beispiel dafür, wie die Funktion funktionieren sollte:
>>> greeting = greeting_generator("Alice")
>>> greeting
"Hello, Alice!"
>>> greeting = greeting_generator("Bob")
>>> greeting
"Hello, Bob!"
Einschränkungen
- Sie müssen eine geschachtelte Funktion namens
get_greetingverwenden, um die Begrüßungsnachricht zu erzeugen. - Die Begrüßungsnachricht muss den Namen enthalten, der an
greeting_generatorübergeben wurde.
Probier es selbst
Alle Lektionen in Python-Dekoratoren
Übe selbstständig: Online-Python-Compiler