> En fait tu « cache » la donnée membre par une fonction du même nom si je ne me trompe pas, c'est ça ?
Non je crée une "property", ça permet de définir une fonction qui interceptera les assignations.
> Si oui il va falloir le faire pour toutes tes données membres ce qui n'es pas très pratique.
Oui et non. Personnellement je ne le fait que quand ça a un réel intérêt car j'adhère à la maxime pythonique We're all consenting adults here.
Mais pour un Javaïste c'est équivalent à écrire un couple getter/setter donc bon...
Et puis grâce au coté dynamique de python tu peut écrire des sortes properties générique aka descriptors et tu n'aura plus qu'a déclarer.
Les modèles Django sont basés la dessus.
[^] # Re: Encapsulation
Posté par Jean B . En réponse au journal Journal inutile : Python c'est complêtement pourri, j'ai un exemple. Évalué à 3.
Non je crée une "property", ça permet de définir une fonction qui interceptera les assignations.
> Si oui il va falloir le faire pour toutes tes données membres ce qui n'es pas très pratique.
Oui et non. Personnellement je ne le fait que quand ça a un réel intérêt car j'adhère à la maxime pythonique We're all consenting adults here.
Mais pour un Javaïste c'est équivalent à écrire un couple getter/setter donc bon...
Et puis grâce au coté dynamique de python tu peut écrire des sortes properties générique aka descriptors et tu n'aura plus qu'a déclarer.
Les modèles Django sont basés la dessus.
http://docs.djangoproject.com/en/1.2/topics/db/models/#field(...)