Fonctions imbriquées II
Beau travail, vous venez d'imbriquer une fonction dans une autre. Une autre raison très intéressante d'imbriquer des fonctions est le concept de fermeture (closure). Cela signifie que la fonction imbriquée (interne) se souvient de l'état de sa portée englobante lorsqu'elle est appelée. Ainsi, tout ce qui est défini localement dans la portée englobante reste accessible à la fonction interne même lorsque la fonction externe a terminé son exécution.
Allons plus loin ! Dans cet exercice, vous allez compléter la définition de la fonction interne inner_echo() puis appeler echo() à quelques reprises, chaque fois avec un argument différent. Terminez l'exercice et voyez quel sera le résultat !
Cette activité fait partie du cours
Introduction aux fonctions en Python
Instructions de l’exercice
- Complétez l'en-tête de la fonction interne avec le nom de fonction
inner_echo()et un seul paramètreword1. - Complétez la fonction
echo()afin qu'elle retourneinner_echo. - Nous avons appelé
echo()avec 2 comme argument et avons assigné la fonction résultante àtwice. À vous d'appelerecho()avec 3 comme argument. Assignez la fonction résultante àthrice. - Cliquez sur Soumettre la réponse pour appeler
twice()etthrice()et afficher les résultats.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# 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'))