Problème sur les propriétés - Python - Programmation
Marsh Posté le 30-12-2005 à 02:44:35
C'est comme si tu faisais :
Code :
|
Donc normal que ça donne "2 None" non ?
Marsh Posté le 30-12-2005 à 02:58:17
ta classe n'est pas une new style class donc les property n'y marchent pas, tu dois hériter de object.
Marsh Posté le 30-12-2005 à 11:33:23
tomazi a écrit : C'est comme si tu faisais :
|
Ben justement non, vu que c'est censé représenter la même valeur de l'attribut ...
0x90 a écrit : ta classe n'est pas une new style class donc les property n'y marchent pas, tu dois hériter de object. |
Effectivement, en remplacant par "class C(object):", ça marche mieux.
Marsh Posté le 30-12-2005 à 11:48:32
tomazi a écrit : C'est comme si tu faisais :
|
No, les deux sont équivalents
0x90 a écrit : ta classe n'est pas une new style class donc les property n'y marchent pas, tu dois hériter de object. |
Burnaid
À noter que les "classic classes" devraient disparaître de Python 3000, tout objet héritant par défaut d'object
Jusque là, bien penser à faire hériter toutes les classes d'object (ou une autre classe héritant déjà d'object, int, long, list, tuple, dict, set, ...).
Je pense que PyLint ou PyChecker sont capables de vérifier qu'on ne l'a pas oublié, aller voir de ce côté là.
Marsh Posté le 30-12-2005 à 13:23:30
masklinn a écrit : Je pense que PyLint ou PyChecker sont capables de vérifier qu'on ne l'a pas oublié, aller voir de ce côté là. |
PyLint ne bronche pas, par contre PyChecker si
Marsh Posté le 30-12-2005 à 21:25:59
Perso j'utilise les deux en général (PyLint avec les paramètres par défaut n'arrête pas de gueuler par contre )
(et j'ai un peu tweaké PyChecker)
(mais faudrait que je leur dise d'arrêter de me faire suer pour des histoires de docstrings )
Marsh Posté le 30-12-2005 à 21:36:07
masklinn a écrit : Perso j'utilise les deux en général (PyLint avec les paramètres par défaut n'arrête pas de gueuler par contre ) |
Ouais, j'ai vu ça
Marsh Posté le 30-12-2005 à 00:48:44
Salut,
j'ai récemment découvert les propriétés (property) dans Python, mais je trouve le comportement un peu étonnant :
qui retourne :
jon@deb64:~$ python test.py
None None
2 None
jon@deb64:~$
... alors que je m'attendais à "2 2" pour la deuxième ligne ...
D'après http://www.python.org/2.2/descrintro.html#property , les "méthodes" setter_id et getter_id ne sont pas vraiment des méthodes (même si on peut les considérer comme telles), mais les infos qu'ils donnent n'ont pas l'air de correspondre à mon cas ci-dessus
Est-ce que je loupe quelque chose ?