Bonjour à toutes et tous,
dans mon apprentissage de python,
je souhaite approfondir les décorateurs et aussi mieux comprendre l'héritage
le principe :
une classe mère Deco qui contient une méthode pour soustraire deux nombres
une classe fille Test qui hérite de la Deco avec une méthode pour additionner deux nombre
Objectif :
décorer la méthode de la classe fille avec un décorateur de la classe mère
resultat du shell:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32 class Deco: """Classe qui contient les décorateurs""" def __init__(self, nb1, nb2): self.nb1 = nb1 self.nb2 = nb2 def decorator(self, func): def soustraction(self): result = f"le resultat de l'operation {self.nb1} - {self.nb2} = {self.nb1-self.nb2}" return result return soustraction class Test(Deco): """teste les décorateurs de methode""" def __init__(self, nb1, nb2): """constructeur de la classe Test""" super().__init__(nb1, nb2) def traitement(self): """additionne les deux nombre""" result = f"le resultat de l'opération {self.nb1} + {self.nb2} = {self.nb1+self.nb2}" return result nb1 = 158 nb2 = 17 test = Test(nb1, nb2) traitement = test.traitement() print("Avant la décoration") print(traitement) traitement = test.decorator(test) print("Après la décoration") print(traitement)
je ne vois pas ce que j'ai loupé
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Avant la décoration le resultat de l'opération 158 + 17 = 175 Après la décoration <function Deco.decorator.<locals>.soustraction at 0x7f1ac94dd7b8>
et pouvait vous m'indiquer ci cela est une bonne pratique de regrouper les décorateurs dans une classe ?
merci
Partager