Chargement...

Enveloppe autour d'une fonction

Vous voulez une ligne écrite avant une salutation. Vous appelez greet avec kai. La première ligne à l'écran sera door. La deuxième ligne sera hi kai.

@announce place wrapped autour de greet, et print écrit deux lignes

python
def announce(fn):
    def wrapped(name):
        print("door")
        return fn(name)
    return wrapped

@announce
def greet(name):
    return "hi " + name

print(greet("kai"))

L'écran affiche deux lignes. Vous avez écrit print(greet("kai")). Cette exécution ne commence pas à la ligne return dans greet. @announce place wrapped autour de greet, donc wrapped s'exécute d'abord quand vous appelez greet("kai"). Le print dans wrapped écrit door, et c'est la première ligne. Ensuite la salutation s'exécute dans wrapped et renvoie hi kai. Le print autour de greet("kai") écrit hi kai, et c'est la deuxième ligne. Le programme est terminé. Il n'y a pas de troisième ligne. None n'est pas une troisième ligne.

door n'est pas la salutation. La salutation est hi kai. Si la ligne @announce n'était pas au-dessus de greet, print(greet("kai")) écrirait une seule ligne, hi kai. Ce programme-là n'est pas celui-ci. Ce programme a @announce, donc la première ligne est door et la deuxième ligne est hi kai.

Vous pouvez maintenant placer une enveloppe autour d'une fonction pour qu'une ligne s'exécute avant la ligne propre à la fonction. L'écran affiche door, puis hi kai. La page suivante écrit un type à côté d'un nom.

Une ligne avant la salutation

La ligne @announce au-dessus de greet fait que le print dans wrapped écrit door en premier. Ensuite print(greet("kai")) écrit la ligne hi kai. L'écran affiche deux lignes : door, puis hi kai. La page suivante écrit un type à côté d'un nom.

🧠 Testez Vos Connaissances

Prêt à Commencer

Testez Vos Connaissances

Mettez-vous au défi avec ce quiz interactif et voyez à quel point vous comprenez le sujet

❓
5
Questions
🎯
70%
Pour Réussir
♾️
∞
Temps
🔄
∞
Tentatives

📝 Instructions

  • Lisez chaque question attentivement
  • Sélectionnez la meilleure réponse pour chaque question
  • Vous pouvez refaire le quiz autant de fois que vous le souhaitez
  • Votre progression sera affichée en haut