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
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)
resultat du shell:
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>
je ne vois pas ce que j'ai loupé
et pouvait vous m'indiquer ci cela est une bonne pratique de regrouper les décorateurs dans une classe ?

merci