Avancé
🧠 Fondamentaux
30 XP
0 personnes ont réussi
Decorateur parametrise : repeter
Jusqu'ici, nos decorateurs ne prenaient pas de paramètres. Mais parfois, tu veux configurer le decorateur. Par exemple, repeter une fonction 3 fois, ou 5 fois, selon le besoin.
Pour ca, il faut un niveau d'imbrication supplémentaire. Le decorateur parametrise est en fait une fonction qui renvoie un decorateur :
def repeter(n): # le paramètre def decorateur(func): # le vrai decorateur def wrapper(*args, **kwargs): # le wrapper ... return wrapper return decorateur
Quand tu ecris @repeter(3), Python appelle d'abord repeter(3) qui renvoie un decorateur, puis ce decorateur est applique a la fonction.
Écris un decorateur parametrise repeter(n) qui fait en sorte que la fonction decoree soit appelee n fois. Le decorateur renvoie une liste contenant le résultat de chaque appel.
Exemple : @repeter(3) def dire_bonjour(): return 'bonjour'