Nästlade funktioner II
Bra jobbat – du har precis nästlat en funktion inuti en annan. Ytterligare ett intressant skäl att nästla funktioner är begreppet closure. Det innebär att den nästlade, eller inre, funktionen kommer ihåg tillståndet i det omslutande scopet när den anropas. Allt som definieras lokalt i det omslutande scopet är alltså tillgängligt för den inre funktionen, även efter att den yttre funktionen har körts klart.
Låt oss gå vidare! I den här övningen ska du färdigställa definitionen av den inre funktionen inner_echo() och sedan anropa echo() ett par gånger, varje gång med ett olika argument. Slutför övningen och se vad resultatet blir!
Den här övningen är en del av kursen
Introduktion till funktioner i Python
Övningsinstruktioner
- Fyll i funktionshuvudet för den inre funktionen med funktionsnamnet
inner_echo()och en enda parameterword1. - Färdigställ funktionen
echo()så att den returnerarinner_echo. - Vi har anropat
echo()med 2 som argument och tilldelat den resulterande funktionen tilltwice. Din uppgift är att anropaecho()med 3 som argument och tilldela den resulterande funktionen tillthrice. - Klicka på Skicka in svar för att anropa
twice()ochthrice()och skriva ut resultaten.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# 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'))