On 28 fév, 10:44, Alex Marandon wrote:wrote:Pardon ? je ne comprends pas ce que tu veux dire, là ???
Heu... je ne vois pas trop ce que tu comprends pas.
Le rapport entre généricité et $@#%%%
Au final, je pense que je vais garder ma solution a base de
__getattr__, nettement plus lisible, a mon tres subjectif avis.
Dommage pour toi - et pour ceux qui devront maintenir ton code.
Pourquoi ? Quels sont les avantages de la solution utilisant le protocole
descripteur ?
(nb : en l'occurence sous la forme de properties, ce qui n'est qu'une
des applications de ce protocole)
Un premier avantage est que la gestion des accès (get/set/del) est
regroupée par propriété, pas par type d'accès (on voit donc toutes les
'règles' d'une propriété en un même endroit). Un second avantage est
qu'il n'y a pas besoin de toucher __getattr__, __setattr__ etc à
chaque modif (donc moins de risque de casser autre chose au passage).
Un quatrième avantage est que la
property (ou autre descripteur) apparait dans le listing des attributs
de l'objet (et peut avoir une docstring).
Un cinquième avantage est
que ça évite de devoir modifier les règles de lookup par défaut si on
n'en a pas le besoin. Un sixième avantage est que ça permet de
modifier les règles de lookup si besoin est sans mélanger ça avec les
définitions des properties.
Elle me parait beaucoup plus lourde,
A quel point de vue ?moins lisible,
Ah bon ? Tu trouve plus lisible deux fonctions (get/set, on va faire
l'impasse sur del pour le moment) bourrées de if/elif/.... ? les
properties permettent (entre autres) de factoriser cette duplication.moins
facile à comprendre et à maintenir.
Mon expérience (pour avoir pas mal utilisé __getattr__/__setattr__
avant que les properties n'existent) est que c'est au contraire bien
plus lisible et maintenable.
L'intervention de NicolasP est
d'ailleurs assez révélatrice.
Révélatrice de sa non connaissance des décorateurs, des properties, et
de apply.
Tu ne comprends pas, donc tu dénigres, en somme ?
Pas du tout, bien au contraire.
Bien au contraire ???
On 28 fév, 10:44, Alex Marandon <a...@invalid.org> wrote:
bruno.desthuilli...@gmail.com wrote:
Pardon ? je ne comprends pas ce que tu veux dire, là ???
Heu... je ne vois pas trop ce que tu comprends pas.
Le rapport entre généricité et $@#%%%
Au final, je pense que je vais garder ma solution a base de
__getattr__, nettement plus lisible, a mon tres subjectif avis.
Dommage pour toi - et pour ceux qui devront maintenir ton code.
Pourquoi ? Quels sont les avantages de la solution utilisant le protocole
descripteur ?
(nb : en l'occurence sous la forme de properties, ce qui n'est qu'une
des applications de ce protocole)
Un premier avantage est que la gestion des accès (get/set/del) est
regroupée par propriété, pas par type d'accès (on voit donc toutes les
'règles' d'une propriété en un même endroit). Un second avantage est
qu'il n'y a pas besoin de toucher __getattr__, __setattr__ etc à
chaque modif (donc moins de risque de casser autre chose au passage).
Un quatrième avantage est que la
property (ou autre descripteur) apparait dans le listing des attributs
de l'objet (et peut avoir une docstring).
Un cinquième avantage est
que ça évite de devoir modifier les règles de lookup par défaut si on
n'en a pas le besoin. Un sixième avantage est que ça permet de
modifier les règles de lookup si besoin est sans mélanger ça avec les
définitions des properties.
Elle me parait beaucoup plus lourde,
A quel point de vue ?
moins lisible,
Ah bon ? Tu trouve plus lisible deux fonctions (get/set, on va faire
l'impasse sur del pour le moment) bourrées de if/elif/.... ? les
properties permettent (entre autres) de factoriser cette duplication.
moins
facile à comprendre et à maintenir.
Mon expérience (pour avoir pas mal utilisé __getattr__/__setattr__
avant que les properties n'existent) est que c'est au contraire bien
plus lisible et maintenable.
L'intervention de NicolasP est
d'ailleurs assez révélatrice.
Révélatrice de sa non connaissance des décorateurs, des properties, et
de apply.
Tu ne comprends pas, donc tu dénigres, en somme ?
Pas du tout, bien au contraire.
Bien au contraire ???
On 28 fév, 10:44, Alex Marandon wrote:wrote:Pardon ? je ne comprends pas ce que tu veux dire, là ???
Heu... je ne vois pas trop ce que tu comprends pas.
Le rapport entre généricité et $@#%%%
Au final, je pense que je vais garder ma solution a base de
__getattr__, nettement plus lisible, a mon tres subjectif avis.
Dommage pour toi - et pour ceux qui devront maintenir ton code.
Pourquoi ? Quels sont les avantages de la solution utilisant le protocole
descripteur ?
(nb : en l'occurence sous la forme de properties, ce qui n'est qu'une
des applications de ce protocole)
Un premier avantage est que la gestion des accès (get/set/del) est
regroupée par propriété, pas par type d'accès (on voit donc toutes les
'règles' d'une propriété en un même endroit). Un second avantage est
qu'il n'y a pas besoin de toucher __getattr__, __setattr__ etc à
chaque modif (donc moins de risque de casser autre chose au passage).
Un quatrième avantage est que la
property (ou autre descripteur) apparait dans le listing des attributs
de l'objet (et peut avoir une docstring).
Un cinquième avantage est
que ça évite de devoir modifier les règles de lookup par défaut si on
n'en a pas le besoin. Un sixième avantage est que ça permet de
modifier les règles de lookup si besoin est sans mélanger ça avec les
définitions des properties.
Elle me parait beaucoup plus lourde,
A quel point de vue ?moins lisible,
Ah bon ? Tu trouve plus lisible deux fonctions (get/set, on va faire
l'impasse sur del pour le moment) bourrées de if/elif/.... ? les
properties permettent (entre autres) de factoriser cette duplication.moins
facile à comprendre et à maintenir.
Mon expérience (pour avoir pas mal utilisé __getattr__/__setattr__
avant que les properties n'existent) est que c'est au contraire bien
plus lisible et maintenable.
L'intervention de NicolasP est
d'ailleurs assez révélatrice.
Révélatrice de sa non connaissance des décorateurs, des properties, et
de apply.
Tu ne comprends pas, donc tu dénigres, en somme ?
Pas du tout, bien au contraire.
Bien au contraire ???
wrote:On 28 fév, 10:44, Alex Marandon wrote:wrote:Au final, je pense que je vais garder ma solution a base de
__getattr__, nettement plus lisible, a mon tres subjectif avis.
Dommage pour toi - et pour ceux qui devront maintenir ton code.
Pourquoi ? Quels sont les avantages de la solution utilisant le protoc ole
descripteur ?
(nb : en l'occurence sous la forme de properties, ce qui n'est qu'une
des applications de ce protocole)
Un premier avantage est que la gestion des accès (get/set/del) est
regroupée par propriété, pas par type d'accès (on voit donc tou tes les
'règles' d'une propriété en un même endroit). Un second avantag e est
qu'il n'y a pas besoin de toucher __getattr__, __setattr__ etc à
chaque modif (donc moins de risque de casser autre chose au passage).
Ok, mais si tu ajoutes plusieurs propriétés, tu dois copier toute la
plomberie ?
Non, j'ímagine tu peux factoriser ça...
Un quatrième avantage est que la
property (ou autre descripteur) apparait dans le listing des attributs
de l'objet (et peut avoir une docstring).
Ah effectivement ça, ça me parle, tu m'as convaincu.Un cinquième avantage est
que ça évite de devoir modifier les règles de lookup par défaut si on
n'en a pas le besoin. Un sixième avantage est que ça permet de
modifier les règles de lookup si besoin est sans mélanger ça avec les
définitions des properties.
C'est quoi, les règles de lookup ?
Elle me parait beaucoup plus lourde,
A quel point de vue ?moins lisible,
Ah bon ? Tu trouve plus lisible deux fonctions (get/set, on va faire
l'impasse sur del pour le moment) bourrées de if/elif/.... ? les
properties permettent (entre autres) de factoriser cette duplication.moins
facile à comprendre et à maintenir.
Mon expérience (pour avoir pas mal utilisé __getattr__/__setattr__
avant que les properties n'existent) est que c'est au contraire bien
plus lisible et maintenable.
J'imagine qu'une fois qu'on est habitué, ça parait naturel.
L'intervention de NicolasP est
d'ailleurs assez révélatrice.
Révélatrice de sa non connaissance des décorateurs, des propertie s, et
de apply.
Oui, mais à mon avis c'est à prendre en compte. Tu te rends compte du nombre
de notions que tu convoques juste pour faire ça.
Perso, j'ai quelques mois
d'expérience de dev Python à plein temps, avec des programmes en prod uction
qui tournent 24h/24 et qui font ce qu'on leur demande. Même si j'ai bien
conscience d'en ignorer beaucoup sur des aspects plus ou moins avancés du
langage, j'ai pas non plus l'impression d'être un débutant complet. E t bien
tu vois, transformer un attribut en valeur calculée, je savais pas fair e,
en tout cas pas comme il faut visiblement.
Avec Ruby, ça faisait pas une demi heure que j'avais commencé le tuto rial
que je savais faire.
Et pas besoin d'apprendre les décorateurs, les
descripteurs, les properties, de coder des fonctions imbriquées, etc. J uste
une syntaxe limpide, immédiatement compréhensible. Il y a un vieux pr écepte
qui dit qu'un langage devrait rendre faciles les choses simples
et possible
les choses compliquées.
Tu ne comprends pas, donc tu dénigres, en somme ?
Pas du tout, bien au contraire.
Bien au contraire ???
Oui, je suis plutôt admiratif. Mon couplet sur les obfuscateurs Python
mangeurs d'enfants se voulait plus humoristique qu'autre chose.
bruno.desthuilli...@gmail.com wrote:
On 28 fév, 10:44, Alex Marandon <a...@invalid.org> wrote:
bruno.desthuilli...@gmail.com wrote:
Au final, je pense que je vais garder ma solution a base de
__getattr__, nettement plus lisible, a mon tres subjectif avis.
Dommage pour toi - et pour ceux qui devront maintenir ton code.
Pourquoi ? Quels sont les avantages de la solution utilisant le protoc ole
descripteur ?
(nb : en l'occurence sous la forme de properties, ce qui n'est qu'une
des applications de ce protocole)
Un premier avantage est que la gestion des accès (get/set/del) est
regroupée par propriété, pas par type d'accès (on voit donc tou tes les
'règles' d'une propriété en un même endroit). Un second avantag e est
qu'il n'y a pas besoin de toucher __getattr__, __setattr__ etc à
chaque modif (donc moins de risque de casser autre chose au passage).
Ok, mais si tu ajoutes plusieurs propriétés, tu dois copier toute la
plomberie ?
Non, j'ímagine tu peux factoriser ça...
Un quatrième avantage est que la
property (ou autre descripteur) apparait dans le listing des attributs
de l'objet (et peut avoir une docstring).
Ah effectivement ça, ça me parle, tu m'as convaincu.
Un cinquième avantage est
que ça évite de devoir modifier les règles de lookup par défaut si on
n'en a pas le besoin. Un sixième avantage est que ça permet de
modifier les règles de lookup si besoin est sans mélanger ça avec les
définitions des properties.
C'est quoi, les règles de lookup ?
Elle me parait beaucoup plus lourde,
A quel point de vue ?
moins lisible,
Ah bon ? Tu trouve plus lisible deux fonctions (get/set, on va faire
l'impasse sur del pour le moment) bourrées de if/elif/.... ? les
properties permettent (entre autres) de factoriser cette duplication.
moins
facile à comprendre et à maintenir.
Mon expérience (pour avoir pas mal utilisé __getattr__/__setattr__
avant que les properties n'existent) est que c'est au contraire bien
plus lisible et maintenable.
J'imagine qu'une fois qu'on est habitué, ça parait naturel.
L'intervention de NicolasP est
d'ailleurs assez révélatrice.
Révélatrice de sa non connaissance des décorateurs, des propertie s, et
de apply.
Oui, mais à mon avis c'est à prendre en compte. Tu te rends compte du nombre
de notions que tu convoques juste pour faire ça.
Perso, j'ai quelques mois
d'expérience de dev Python à plein temps, avec des programmes en prod uction
qui tournent 24h/24 et qui font ce qu'on leur demande. Même si j'ai bien
conscience d'en ignorer beaucoup sur des aspects plus ou moins avancés du
langage, j'ai pas non plus l'impression d'être un débutant complet. E t bien
tu vois, transformer un attribut en valeur calculée, je savais pas fair e,
en tout cas pas comme il faut visiblement.
Avec Ruby, ça faisait pas une demi heure que j'avais commencé le tuto rial
que je savais faire.
Et pas besoin d'apprendre les décorateurs, les
descripteurs, les properties, de coder des fonctions imbriquées, etc. J uste
une syntaxe limpide, immédiatement compréhensible. Il y a un vieux pr écepte
qui dit qu'un langage devrait rendre faciles les choses simples
et possible
les choses compliquées.
Tu ne comprends pas, donc tu dénigres, en somme ?
Pas du tout, bien au contraire.
Bien au contraire ???
Oui, je suis plutôt admiratif. Mon couplet sur les obfuscateurs Python
mangeurs d'enfants se voulait plus humoristique qu'autre chose.
wrote:On 28 fév, 10:44, Alex Marandon wrote:wrote:Au final, je pense que je vais garder ma solution a base de
__getattr__, nettement plus lisible, a mon tres subjectif avis.
Dommage pour toi - et pour ceux qui devront maintenir ton code.
Pourquoi ? Quels sont les avantages de la solution utilisant le protoc ole
descripteur ?
(nb : en l'occurence sous la forme de properties, ce qui n'est qu'une
des applications de ce protocole)
Un premier avantage est que la gestion des accès (get/set/del) est
regroupée par propriété, pas par type d'accès (on voit donc tou tes les
'règles' d'une propriété en un même endroit). Un second avantag e est
qu'il n'y a pas besoin de toucher __getattr__, __setattr__ etc à
chaque modif (donc moins de risque de casser autre chose au passage).
Ok, mais si tu ajoutes plusieurs propriétés, tu dois copier toute la
plomberie ?
Non, j'ímagine tu peux factoriser ça...
Un quatrième avantage est que la
property (ou autre descripteur) apparait dans le listing des attributs
de l'objet (et peut avoir une docstring).
Ah effectivement ça, ça me parle, tu m'as convaincu.Un cinquième avantage est
que ça évite de devoir modifier les règles de lookup par défaut si on
n'en a pas le besoin. Un sixième avantage est que ça permet de
modifier les règles de lookup si besoin est sans mélanger ça avec les
définitions des properties.
C'est quoi, les règles de lookup ?
Elle me parait beaucoup plus lourde,
A quel point de vue ?moins lisible,
Ah bon ? Tu trouve plus lisible deux fonctions (get/set, on va faire
l'impasse sur del pour le moment) bourrées de if/elif/.... ? les
properties permettent (entre autres) de factoriser cette duplication.moins
facile à comprendre et à maintenir.
Mon expérience (pour avoir pas mal utilisé __getattr__/__setattr__
avant que les properties n'existent) est que c'est au contraire bien
plus lisible et maintenable.
J'imagine qu'une fois qu'on est habitué, ça parait naturel.
L'intervention de NicolasP est
d'ailleurs assez révélatrice.
Révélatrice de sa non connaissance des décorateurs, des propertie s, et
de apply.
Oui, mais à mon avis c'est à prendre en compte. Tu te rends compte du nombre
de notions que tu convoques juste pour faire ça.
Perso, j'ai quelques mois
d'expérience de dev Python à plein temps, avec des programmes en prod uction
qui tournent 24h/24 et qui font ce qu'on leur demande. Même si j'ai bien
conscience d'en ignorer beaucoup sur des aspects plus ou moins avancés du
langage, j'ai pas non plus l'impression d'être un débutant complet. E t bien
tu vois, transformer un attribut en valeur calculée, je savais pas fair e,
en tout cas pas comme il faut visiblement.
Avec Ruby, ça faisait pas une demi heure que j'avais commencé le tuto rial
que je savais faire.
Et pas besoin d'apprendre les décorateurs, les
descripteurs, les properties, de coder des fonctions imbriquées, etc. J uste
une syntaxe limpide, immédiatement compréhensible. Il y a un vieux pr écepte
qui dit qu'un langage devrait rendre faciles les choses simples
et possible
les choses compliquées.
Tu ne comprends pas, donc tu dénigres, en somme ?
Pas du tout, bien au contraire.
Bien au contraire ???
Oui, je suis plutôt admiratif. Mon couplet sur les obfuscateurs Python
mangeurs d'enfants se voulait plus humoristique qu'autre chose.
Amaury Forgeot d'Arc wrote:SoapPy, qui transforme naturellement des appels de fonction vers
XML-RPC;
SoapPy, c'est drolement bien choisi pour une lib XML-RPC.
wxPython qui permet de dériver en Python des objets C++;
En fait, c'est plutot l'inverse. Le fait qu'on puisse deriver des objets C++
en Python permet l'utilisation de toolkits graphiques comme Qt.
py.test pour écrire des tests unitaires sans aucune librairie...
Et py.test, ce serait pas une librairie par hasard ? Ah, un certain Jacques
T. me souffle que ce serait une bibliotheque.
Amaury Forgeot d'Arc wrote:
SoapPy, qui transforme naturellement des appels de fonction vers
XML-RPC;
SoapPy, c'est drolement bien choisi pour une lib XML-RPC.
wxPython qui permet de dériver en Python des objets C++;
En fait, c'est plutot l'inverse. Le fait qu'on puisse deriver des objets C++
en Python permet l'utilisation de toolkits graphiques comme Qt.
py.test pour écrire des tests unitaires sans aucune librairie...
Et py.test, ce serait pas une librairie par hasard ? Ah, un certain Jacques
T. me souffle que ce serait une bibliotheque.
Amaury Forgeot d'Arc wrote:SoapPy, qui transforme naturellement des appels de fonction vers
XML-RPC;
SoapPy, c'est drolement bien choisi pour une lib XML-RPC.
wxPython qui permet de dériver en Python des objets C++;
En fait, c'est plutot l'inverse. Le fait qu'on puisse deriver des objets C++
en Python permet l'utilisation de toolkits graphiques comme Qt.
py.test pour écrire des tests unitaires sans aucune librairie...
Et py.test, ce serait pas une librairie par hasard ? Ah, un certain Jacques
T. me souffle que ce serait une bibliotheque.
- la notion de "décorateur" : rien de plus qu'un peu de sucre
syntaxique sur une fonction d'ordre supérieur. Pas de quoi fouetter un
chat.
- le protocole descripteur et les règles de résolution de nom (ça va
ensemble) : ça fait quand même parties des notions de base dans un
langage, non ?
tu vois, transformer un attribut en valeur calculée, je savais pas faire,
en tout cas pas comme il faut visiblement.
C'est pourtant abondamment documenté. Tu sais, je n'ai pas inventé ça
moi-même...
class Toto(object):
def setfoo(self, foo):
self._foo = foo.lower()
def getfoo(self):
return self._foo
foo = property(fget=getfoo, fset=setfoo)
je reconnais que c'est un tout petit peu plus verbeux que Ruby. Mais
bon : pas de décorateur, pas de fonction imbriquée, et même pas besoin
de comprendre comment ça marche. Ca te va ?
et possible
les choses compliquées.
Puis-je te recommander le code source de FormEncode, et
particulièrement de l'API "Declarative" ?-)
- la notion de "décorateur" : rien de plus qu'un peu de sucre
syntaxique sur une fonction d'ordre supérieur. Pas de quoi fouetter un
chat.
- le protocole descripteur et les règles de résolution de nom (ça va
ensemble) : ça fait quand même parties des notions de base dans un
langage, non ?
tu vois, transformer un attribut en valeur calculée, je savais pas faire,
en tout cas pas comme il faut visiblement.
C'est pourtant abondamment documenté. Tu sais, je n'ai pas inventé ça
moi-même...
class Toto(object):
def setfoo(self, foo):
self._foo = foo.lower()
def getfoo(self):
return self._foo
foo = property(fget=getfoo, fset=setfoo)
je reconnais que c'est un tout petit peu plus verbeux que Ruby. Mais
bon : pas de décorateur, pas de fonction imbriquée, et même pas besoin
de comprendre comment ça marche. Ca te va ?
et possible
les choses compliquées.
Puis-je te recommander le code source de FormEncode, et
particulièrement de l'API "Declarative" ?-)
- la notion de "décorateur" : rien de plus qu'un peu de sucre
syntaxique sur une fonction d'ordre supérieur. Pas de quoi fouetter un
chat.
- le protocole descripteur et les règles de résolution de nom (ça va
ensemble) : ça fait quand même parties des notions de base dans un
langage, non ?
tu vois, transformer un attribut en valeur calculée, je savais pas faire,
en tout cas pas comme il faut visiblement.
C'est pourtant abondamment documenté. Tu sais, je n'ai pas inventé ça
moi-même...
class Toto(object):
def setfoo(self, foo):
self._foo = foo.lower()
def getfoo(self):
return self._foo
foo = property(fget=getfoo, fset=setfoo)
je reconnais que c'est un tout petit peu plus verbeux que Ruby. Mais
bon : pas de décorateur, pas de fonction imbriquée, et même pas besoin
de comprendre comment ça marche. Ca te va ?
et possible
les choses compliquées.
Puis-je te recommander le code source de FormEncode, et
particulièrement de l'API "Declarative" ?-)
wrote:
(snip)
tu vois, transformer un attribut en valeur calculée, je savais pas faire,
en tout cas pas comme il faut visiblement.
C'est pourtant abondamment documenté. Tu sais, je n'ai pas inventé ça
moi-même...
Ok, c'est vrai que j'ai toujours un peu de mal a m'y retrouver dans la
doc Python, le tutoriel est parfait pour debuter, mais insuffisant pour
programmer. Le reference est trop aride pour que je puisse en tirer
partie autrement qu'en tant que pense-bete pour des choses que j'ai deja
utilisees. Quand a la doc de la bibliotheque standard, elle suit
l'organisation de la bibliotheque standard elle-meme, selon une logique
qui me depasse souvent. Au final, je finis generalement par utiliser
google et pecher les infos par ci par la.
class Toto(object):
def setfoo(self, foo):
self._foo = foo.lower()
def getfoo(self):
return self._foo
foo = property(fget=getfoo, fset=setfoo)
je reconnais que c'est un tout petit peu plus verbeux que Ruby. Mais
bon : pas de décorateur, pas de fonction imbriquée, et même pas besoin
de comprendre comment ça marche. Ca te va ?
Oui, je prefere. D'un autre cote, Ruby est plus verbeux en l'absence de
valeurs calculees puisqu'il faut une ligne de declaration des accesseurs.
et possible
les choses compliquées.
Puis-je te recommander le code source de FormEncode, et
particulièrement de l'API "Declarative" ?-)
Effectivement, c'est a l'air bien complique :)
bruno.desthuilliers@gmail.com wrote:
(snip)
tu vois, transformer un attribut en valeur calculée, je savais pas faire,
en tout cas pas comme il faut visiblement.
C'est pourtant abondamment documenté. Tu sais, je n'ai pas inventé ça
moi-même...
Ok, c'est vrai que j'ai toujours un peu de mal a m'y retrouver dans la
doc Python, le tutoriel est parfait pour debuter, mais insuffisant pour
programmer. Le reference est trop aride pour que je puisse en tirer
partie autrement qu'en tant que pense-bete pour des choses que j'ai deja
utilisees. Quand a la doc de la bibliotheque standard, elle suit
l'organisation de la bibliotheque standard elle-meme, selon une logique
qui me depasse souvent. Au final, je finis generalement par utiliser
google et pecher les infos par ci par la.
class Toto(object):
def setfoo(self, foo):
self._foo = foo.lower()
def getfoo(self):
return self._foo
foo = property(fget=getfoo, fset=setfoo)
je reconnais que c'est un tout petit peu plus verbeux que Ruby. Mais
bon : pas de décorateur, pas de fonction imbriquée, et même pas besoin
de comprendre comment ça marche. Ca te va ?
Oui, je prefere. D'un autre cote, Ruby est plus verbeux en l'absence de
valeurs calculees puisqu'il faut une ligne de declaration des accesseurs.
et possible
les choses compliquées.
Puis-je te recommander le code source de FormEncode, et
particulièrement de l'API "Declarative" ?-)
Effectivement, c'est a l'air bien complique :)
wrote:
(snip)
tu vois, transformer un attribut en valeur calculée, je savais pas faire,
en tout cas pas comme il faut visiblement.
C'est pourtant abondamment documenté. Tu sais, je n'ai pas inventé ça
moi-même...
Ok, c'est vrai que j'ai toujours un peu de mal a m'y retrouver dans la
doc Python, le tutoriel est parfait pour debuter, mais insuffisant pour
programmer. Le reference est trop aride pour que je puisse en tirer
partie autrement qu'en tant que pense-bete pour des choses que j'ai deja
utilisees. Quand a la doc de la bibliotheque standard, elle suit
l'organisation de la bibliotheque standard elle-meme, selon une logique
qui me depasse souvent. Au final, je finis generalement par utiliser
google et pecher les infos par ci par la.
class Toto(object):
def setfoo(self, foo):
self._foo = foo.lower()
def getfoo(self):
return self._foo
foo = property(fget=getfoo, fset=setfoo)
je reconnais que c'est un tout petit peu plus verbeux que Ruby. Mais
bon : pas de décorateur, pas de fonction imbriquée, et même pas besoin
de comprendre comment ça marche. Ca te va ?
Oui, je prefere. D'un autre cote, Ruby est plus verbeux en l'absence de
valeurs calculees puisqu'il faut une ligne de declaration des accesseurs.
et possible
les choses compliquées.
Puis-je te recommander le code source de FormEncode, et
particulièrement de l'API "Declarative" ?-)
Effectivement, c'est a l'air bien complique :)