Funkcje zagnieżdżone
Lekcja 2 z 12 w kursie Dekoratory w Pythonie w Coddy.
Zanim przejdziemy do dekoratorów, musimy zrozumieć kilka ważnych pojęć związanych z funkcjami w Pythonie.
W Pythonie możemy umieścić jedną funkcję wewnątrz innej; nazywamy ją wtedy funkcją zagnieżdżoną.
Na przykład:
def outer_function():
print("This is the outer function.")
def inner_function():
print("This is the inner function.")
inner_function()
W tym przykładzie funkcja outer_function zawiera funkcję zagnieżdżoną o nazwie inner_function.
Po wywołaniu outer_function najpierw zostanie wyświetlony tekst "This is the outer function.", a następnie wywołana zostanie funkcja inner_function. Funkcja inner_function wyświetli wtedy tekst "This is the inner function."
Zauważ, że funkcję inner_function można wywołać tylko z wnętrza funkcji outer_function.
Jeśli spróbujesz wywołać funkcję inner_function poza funkcją outer_function, otrzymasz błąd NameError informujący, że funkcja inner_function nie jest zdefiniowana.
Wyzwanie
ŁatwyNapisz funkcję o nazwie greeting_generator, która przyjmuje imię jako argument i zwraca powitanie zawierające to imię.
Powitanie powinno być generowane przez zagnieżdżoną funkcję o nazwie get_greeting, która przyjmuje imię jako argument i zwraca ciąg znaków o treści "Hello, [name]!".
Oto przykład działania funkcji:
>>> greeting = greeting_generator("Alice")
>>> greeting
"Hello, Alice!"
>>> greeting = greeting_generator("Bob")
>>> greeting
"Hello, Bob!"
Ograniczenia
- Do wygenerowania powitania musisz użyć zagnieżdżonej funkcji o nazwie
get_greeting. - Powitanie musi zawierać imię przekazane do funkcji
greeting_generator.
Spróbuj swoich sił
Wszystkie lekcje w sekcji Dekoratory w Pythonie
Poćwicz samodzielnie: Kompilator Python online