Aan de slagGa gratis aan de slag

Geneste functies II

Goed gedaan, je hebt zojuist een functie binnen een andere functie genest. Een andere gave reden om functies te nesten is het idee van een closure. Dit betekent dat de geneste of innerlijke functie de staat van de omhullende scope onthoudt wanneer ze wordt aangeroepen. Alles wat lokaal is gedefinieerd in die omhullende scope is dus beschikbaar voor de innerlijke functie, zelfs wanneer de buitenste functie klaar is met uitvoeren.

Laten we doorgaan! In deze oefening maak je de definitie af van de innerlijke functie inner_echo() en roep je echo() een paar keer aan, telkens met een ander argument. Maak de oefening af en kijk wat de output wordt!

Deze oefening maakt deel uit van de cursus

Introductie tot functies in Python

Cursus bekijken

Oefeninstructies

  • Maak de functieheader van de innerlijke functie af met de functienaam inner_echo() en één parameter word1.
  • Maak de functie echo() af zodat deze inner_echo retourneert.
  • We hebben echo() al aangeroepen met 2 als argument en de resulterende functie toegewezen aan twice. Jij roept echo() nu aan met 3 als argument. Wijs de resulterende functie toe aan thrice.
  • Klik op Antwoord verzenden om twice() en thrice() aan te roepen en de resultaten te printen.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

# 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'))
Code bewerken en uitvoeren