Avancé
🧠 Fondamentaux
30 XP
0 personnes ont réussi
Proxy transparent avec __gétattr__
Un pattern courant en programmation, c'est le Proxy : un objet qui se comporte comme un autre objet, mais qui ajoute un comportement supplémentaire (logging, cache, controle d'acces...).
Grace a __gétattr__, on peut créer un proxy qui delegue tous les acces d'attributs a un objet encapsule, tout en comptant le nombre d'acces.
Écris une classe ProxyCompteur qui encapsule n'importe quel objet. Quand on accede a un attribut du proxy, il le delegue a l'objet encapsule et incremente un compteur. La classe doit avoir une méthode nb_acces() qui renvoie le nombre total d'acces aux attributs.
Exemple : texte = 'hello world' p = ProxyCompteur(texte) p.upper() # delegue a texte.upper() -> 'HELLO WORLD' p.split() # delegue a texte.split() -> ['hello', 'world'] p.nb_acces() renvoie 2
Tests (3/4)
Delegation fonctionne
p = ProxyCompteur('hello')
assert p.upper() == 'HELLO'
Compteur incremente
p = ProxyCompteur('hello')
p.upper()
p.lower()
assert p.nb_acces() == 2
Zero acces au depart
p = ProxyCompteur([1, 2, 3])
assert p.nb_acces() == 0