Je comprends le concept d'objet, ce que je ne comprends pas c'est pourquoi s'embêter à faire appel aux méthodes get_ et set_ plutôt que directement agir sur la propriété de l'objet ?
Si c'est pour cacher une tambouille interne à l'objet qui doit se faire lorsqu'une propriété change, il y a plus adapté que cela en python, avec les properties (ou les décorateurs @property, @x.setter et @x.getter) :
classVoiture(object):def__init__(self,marque,couleur,taille):self.couleur=couleurself.marque=marqueself._taille=taille@propertydeftaille_m(self):"""taille de la voiture en mètres"""returnself._taille@taille_m.setterdeftaille_m(self,value):self._taille=value@propertydeftaille_ft(self):returnself._taille/0.3048@taille_ft.setterdeftaille_ft(self,value):self._taille=value*0.3048ma_voiture=Voiture("Honda","Verte",2)printma_voiture.taille_m# 2printma_voiture.taille_ft# 6.56167979003ma_voiture.taille_m=3printma_voiture.taille_m# 3printma_voiture.taille_ft# 9.84251968504ma_voiture.taille_ft=8printma_voiture.taille_m# 2.4384printma_voiture.taille_ft# 8.0
Cela permet de ne pas écrire de fonction get et set sur chaque propriété qui n'en a pas besoin, et si jamais on doit faire quelque chose sur ces valeur, on ne change pas tout le reste du code.
Personnellement je préfère appeler MonObjet.foo et faire des MonObjet.foo = x plutôt que des MonObjet.get_foo() et MonObjet.set_foo(x) en permanence…
[^] # Re: Tk, averc n'importe quel langage par dessus.
Posté par Strash . En réponse au message débutant cherche piste pour apprendre a faire de petite gui. Évalué à 3.
Je comprends le concept d'objet, ce que je ne comprends pas c'est pourquoi s'embêter à faire appel aux méthodes get_ et set_ plutôt que directement agir sur la propriété de l'objet ?
Si c'est pour cacher une tambouille interne à l'objet qui doit se faire lorsqu'une propriété change, il y a plus adapté que cela en python, avec les properties (ou les décorateurs @property, @x.setter et @x.getter) :
Cela permet de ne pas écrire de fonction get et set sur chaque propriété qui n'en a pas besoin, et si jamais on doit faire quelque chose sur ces valeur, on ne change pas tout le reste du code.
Personnellement je préfère appeler MonObjet.foo et faire des MonObjet.foo = x plutôt que des MonObjet.get_foo() et MonObjet.set_foo(x) en permanence…
Je suis à coté de la plaque ?