Surcharge d'une propriété : property() VS @property
Bonjour
Dans une classe dérivée, je souhaite "surcharger" une propriété de la classe parente.
Pour définir la propriété dans la classe dérivée, j'ai besoin d'accéder à la propriété de la classe parente (mon cas réel est moins simpliste que l'exemple ci-dessous !).
Je n'y suis arrivé qu'en utilisant la fonction property car là, pour le coup, j'appelle une méthode tout bête de la classe mère :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
class Mere(object):
def __init__(self,compA,compB):
self._compA = compA
self._compB = compB
def get_somme(self):
return self._compA + self._compB
somme = property(get_somme)
class Fille(Mere):
def __init__(self,compA,compB,compC):
Mere.__init__(self,compA,compB)
self._compC = compC
def get_somme_ou_autre_nom(self):
return Mere.get_somme(self) + self._compC
somme = property(get_somme_ou_autre_nom) |
Est-ce possible de faire quelque chose d'équivalent si, dans la classe parente, la propriété a été définie via le décorateur @property ?
J'ai essayé différentes syntaxes pour utiliser la propriété de la classe parente mais sans succès ...
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
class Mere(object):
def __init__(self,compA,compB):
self._compA = compA
self._compB = compB
@property
def somme(self):
return self._compA + self._compB
class Fille(Mere):
def __init__(self,compA,compB,compC):
Mere.__init__(self,compA,compB)
self._compC = compC
@property
def somme(self):
return ????? + self._compC |