Exercices Architecture & Patterns Ajouter une méthode a une classe (monkey patching)
🎉

Bravo!

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

Ajouter une méthode a une classe (monkey patching)

Le monkey patching, c'est modifier une classe ou un module apres sa création, en lui ajoutant ou remplacant des méthodes ou des attributs. Le terme est un peu rigolo, mais la technique est reelle et utilisee dans le monde professionnel, notamment pour corriger des bugs dans des bibliotheques qu'on ne peut pas modifier directement.

Le principe est simple : en Python, une classe est un objet, et on peut lui assigner de nouveaux attributs a tout moment.

class Animal:
def __init__(self, nom):
self.nom = nom

def presenter(self):
return f"Je suis {self.nom}"

Animal.presenter = presenter # On ajoute la méthode a la classe

chat = Animal('Felix')
print(chat.presenter()) # "Je suis Felix"

Attention : le premier paramètre de la fonction doit etre self, puisqu'elle va devenir une méthode d'instance.

On te donne cette classe :

class Calculatrice:
def __init__(self, valeur):
self.valeur = valeur

Écris une fonction patch_calculatrice() qui ajoute a la classe Calculatrice une méthode doubler() qui renvoie self.valeur * 2. La fonction ne prend pas d'argument et ne renvoie rien, elle modifie juste la classe.

Exemple :
patch_calculatrice()
c = Calculatrice(5)
c.doubler() renvoie 10

Tests (3/4)

Méthode ajoutee
patch_calculatrice()
c = Calculatrice(5)
assert c.doubler() == 10
Autre valeur
patch_calculatrice()
c = Calculatrice(0)
assert c.doubler() == 0
Valeur negative
patch_calculatrice()
c = Calculatrice(-3)
assert c.doubler() == -6

+ 0 tests cachés

Indices (3 disponibles)

solution.py