Exercices Architecture & Patterns Proxy transparent avec __gétattr__
🎉

Bravo!

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

+ 0 tests cachés

Indices (3 disponibles)

solution.py