Exercices Fonctions & Modules Empiler des decorateurs
🎉

Bravo!

Avancé 🧠 Fondamentaux 30 XP 0 personnes ont réussi

Empiler des decorateurs

Tu peux empiler plusieurs decorateurs sur une meme fonction. L'ordre compte : le decorateur le plus proche de la fonction est applique en premier, puis le suivant l'enveloppe.

Par exemple :
@deco_a
@deco_b
def f():
...

C'est equivalent a : f = deco_a(deco_b(f))

Donc deco_b est applique en premier, puis deco_a enveloppe le résultat.

Écris deux decorateurs :
entourer_etoiles : entoure le résultat avec des etoiles (*** résultat ***)
en_majuscules : met le résultat en majuscules

Les deux decorateurs travaillent avec des fonctions qui renvoient des chaines.

Exemple :
@entourer_etoiles
@en_majuscules
def saluer():
return 'bonjour'

saluer() renvoie '*** BONJOUR ***'

Tests (3/4)

Les deux empiles
@entourer_etoiles
@en_majuscules
def saluer():
    return 'bonjour'
assert saluer() == '*** BONJOUR ***'
Majuscules seul
@en_majuscules
def mot():
    return 'python'
assert mot() == 'PYTHON'
Etoiles seul
@entourer_etoiles
def mot():
    return 'python'
assert mot() == '*** python ***'

+ 0 tests cachés

Indices (3 disponibles)

solution.py