Exercices Fonctions & Modules Decorateur qui vérifie le type
🎉

Bravo!

Intermédiaire 🧠 Fondamentaux 20 XP 0 personnes ont réussi

Decorateur qui vérifie le type

Les decorateurs sont tres utiles pour ajouter des vérifications sans modifier la fonction originale. Un cas courant : vérifier que les arguments passes sont du bon type.

Rappelle-toi que dans le wrapper, *args contient tous les arguments positionnels sous forme de tuple. Tu peux les parcourir pour les vérifier.

Écris un decorateur que_des_nombres qui vérifie que tous les arguments positionnels passes a la fonction sont des int ou des float. Si un argument n'est pas un nombre, le decorateur leve une TypeError avec un message clair. Sinon, la fonction s'exécute normalement.

Attention au piege classique : bool est une sous-classe de int en Python, donc True et False passeraient le test isinstance(x, (int, float)). Exclu les booleens.

Exemple :
@que_des_nombres
def additionner(a, b):
return a + b

additionner(3, 4) renvoie 7
additionner('3', 4) leve TypeError

Tests (3/4)

Nombres valides
@que_des_nombres
def add(a, b):
    return a + b
assert add(3, 4) == 7
Float valide
@que_des_nombres
def add(a, b):
    return a + b
assert add(1.5, 2.5) == 4.0
String invalide
@que_des_nombres
def add(a, b):
    return a + b
try:
    add('3', 4)
    assert False, 'Aurait du lever TypeError'
except TypeError:
    assert True

+ 0 tests cachés

Indices (3 disponibles)

solution.py