Exercices Architecture & Patterns Classe avec validation automatique des types
🎉

Bravo!

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

Classe avec validation automatique des types

En combinant __sétattr__ et un système de declaration de types, on peut créer des classes qui valident automatiquement les types des attributs a l'assignation. C'est un pattern utilise dans des frameworks comme Django (pour les modèles) ou Pydantic.

Écris une classe TypeSafe qui prend un dictionnaire de contraintes dans son constructeur. Chaque clé est un nom d'attribut, et la valeur est le type attendu. Si on essaie d'assigner une valeur du mauvais type, la classe leve un TypeError.

Exemple :
obj = TypeSafe({'nom': str, 'age': int})
obj.nom = 'Alice' # OK
obj.age = 30 # OK
obj.nom = 42 # TypeError
obj.ville = 'Paris' # OK (pas de contrainte sur ville)

Tests (4/5)

Type correct str
obj = TypeSafe({'nom': str})
obj.nom = 'Alice'
assert obj.nom == 'Alice'
Type correct int
obj = TypeSafe({'age': int})
obj.age = 30
assert obj.age == 30
Type incorrect leve TypeError
obj = TypeSafe({'nom': str})
try:
    obj.nom = 42
    assert False, 'Devrait lever TypeError'
except TypeError:
    pass
Attribut sans contrainte
obj = TypeSafe({'nom': str})
obj.ville = 123
assert obj.ville == 123

+ 0 tests cachés

Indices (3 disponibles)

solution.py