Zacznij terazZacznij za darmo

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

Zobacz kurs

Instrukcje do ćwiczenia

  • Uzupełnij nagłówek funkcji wewnętrznej, podając nazwę inner_echo() i jeden parametr word1.
  • Uzupełnij funkcję echo() tak, aby zwracała inner_echo.
  • Wywołanie echo() z argumentem 2 zostało już wykonane, a wynikowa funkcja przypisana do zmiennej twice. Twoim zadaniem jest wywołanie echo() z argumentem 3. Przypisz wynikową funkcję do zmiennej thrice.
  • Kliknij Prześlij odpowiedź, aby wywołać twice() i thrice() 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'))
Edytuj i uruchom kod