Funkcje zagnieżdżone II
Świetna robota – właśnie zagnieździłeś funkcję wewnątrz innej funkcji. Kolejnym ciekawym powodem, dla którego warto zagnieżdżać funkcje, jest koncepcja domknięcia (ang. closure). Oznacza to, że funkcja zagnieżdżona (wewnętrzna) zapamiętuje stan zakresu otaczającego ją w momencie wywołania. Dzięki temu wszystko zdefiniowane lokalnie w zakresie zewnętrznym pozostaje dostępne dla funkcji wewnętrznej – nawet po zakończeniu działania funkcji zewnętrznej.
Idźmy dalej! W tym ćwiczeniu uzupełnisz definicję funkcji wewnętrznej inner_echo(), a następnie wywołasz echo() kilka razy, za każdym razem z innym argumentem. Wykonaj ćwiczenie i sprawdź, co pojawi się na wyjściu!
To ćwiczenie jest częścią kursu
Wprowadzenie do funkcji w Pythonie
Instrukcje do ćwiczenia
- Uzupełnij nagłówek funkcji wewnętrznej, podając nazwę
inner_echo()i jeden parametrword1. - Uzupełnij funkcję
echo()tak, aby zwracałainner_echo. - Wywołanie
echo()z argumentem 2 zostało już wykonane, a wynikowa funkcja przypisana do zmiennejtwice. Twoim zadaniem jest wywołanieecho()z argumentem 3. Przypisz wynikową funkcję do zmiennejthrice. - Kliknij Prześlij odpowiedź, aby wywołać
twice()ithrice()oraz wyświetlić wyniki.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# Define echo
def echo(n):
"""Return the inner_echo function."""
# Define inner_echo
def ____(____):
"""Concatenate n copies of word1."""
echo_word = word1 * n
return echo_word
# Return inner_echo
# Call echo: twice
twice = echo(2)
# Call echo: thrice
# Call twice() and thrice() then print
print(twice('hello'), thrice('hello'))