CommencezCommencez gratuitement

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

Voir le cours

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ètre word1.
  • Complétez la fonction echo() afin qu'elle retourne inner_echo.
  • Nous avons appelé echo() avec 2 comme argument et avons assigné la fonction résultante à twice. À vous d'appeler echo() avec 3 comme argument. Assignez la fonction résultante à thrice.
  • Cliquez sur Soumettre la réponse pour appeler twice() et thrice() 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'))
Modifier et exécuter le code