Exercices Architecture & Patterns Decorateur de classe
🎉

Bravo!

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

Decorateur de classe

Un decorateur de classe, c'est une fonction qui prend une classe en paramètre, la modifie, et la retourne. C'est comme un atelier de personnalisation : tu envoies ta voiture, elle revient avec des options en plus.

Exemple :
def ajouter_version(cls):
cls.version = '1.0'
return cls

@ajouter_version
class MonApp:
pass

MonApp.version # '1.0'

Crée un decorateur de classe ajouter_repr qui ajoute automatiquement une méthode __repr__ a n'importe quelle classe. Le __repr__ génère doit afficher le nom de la classe et tous ses attributs d'instance sous la forme NomClasse(attr1=val1, attr2=val2).

Pour lister les attributs d'instance, utilise self.__dict__.items(). Pour les valeurs de type string, elles doivent apparaitre avec des guillemets (utilise !r dans la f-string).

Exemple :
@ajouter_repr
class Voiture:
def __init__(self, marque, annee):
self.marque = marque
self.annee = annee

v = Voiture('Toyota', 2020)
repr(v) # "Voiture(marque='Toyota', annee=2020)"

Tests (2/4)

Repr de base
v = Voiture('Toyota', 2020)
assert repr(v) == "Voiture(marque='Toyota', annee=2020)"
Autre instance
v = Voiture('BMW', 2023)
assert 'BMW' in repr(v) and '2023' in repr(v)

+ 0 tests cachés

Indices (3 disponibles)

solution.py