Exercices Fonctions & Modules Decorateur parametrise : repeter
🎉

Bravo!

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'

dire_bonjour() renvoie ['bonjour', 'bonjour', 'bonjour']

Tests (3/4)

Repeter 3 fois
@repeter(3)
def dire():
    return 'yo'
assert dire() == ['yo', 'yo', 'yo']
Repeter 1 fois
@repeter(1)
def un():
    return 42
assert un() == [42]
Avec arguments
@repeter(2)
def double(x):
    return x * 2
assert double(5) == [10, 10]

+ 0 tests cachés

Indices (3 disponibles)

solution.py