Comments on: Le namedtuple, la structure mal aimée http://sametmax.com/le-namedtuple-la-structure-mal-aimee/ Du code, du cul Sat, 07 Nov 2015 11:08:18 +0000 hourly 1 http://wordpress.org/?v=4.1 By: osef osef http://sametmax.com/le-namedtuple-la-structure-mal-aimee/#comment-20094 Wed, 19 Feb 2014 10:40:52 +0000 http://sametmax.com/?p=9137#comment-20094 merci pour l’image, pas trop grave pour la couleur des cheveux :p

]]>
By: Sam http://sametmax.com/le-namedtuple-la-structure-mal-aimee/#comment-19753 Fri, 14 Feb 2014 16:56:26 +0000 http://sametmax.com/?p=9137#comment-19753 Nope. Tu peux taper dans le mapping des attributs, mais dans ce cas autant utiliser un dico.

]]>
By: Fred http://sametmax.com/le-namedtuple-la-structure-mal-aimee/#comment-19749 Fri, 14 Feb 2014 14:34:27 +0000 http://sametmax.com/?p=9137#comment-19749 Hum, je ne connaissois point.
En faisant un

dir(jdg)

, j’ai vu apparaitre les attributs “nom”, “age” et “signe_particulier”. Bon bref jdg est devenue en fait une classe.
J’ai vu aussi d’autres attributs comme “count” et “index”. Et là, je me dis “hum, mais que se passera-donc-t-il-donc si j’écris

Joueur = namedtuple('Joueur', ['count', 'index'])

??? Je pense que les attributs “count” et “index” vont écraser ceux définis par défaut. En tout cas, j’ai pas eu d’erreur donc danger dans les noms qu’on met aux “tuples nommés”…

Sinon il y a moyen d’itérer les noms et leurs valeurs ? Un peu faire comme un

jdg.iteritems()

???

]]>
By: Nours http://sametmax.com/le-namedtuple-la-structure-mal-aimee/#comment-19748 Fri, 14 Feb 2014 12:45:16 +0000 http://sametmax.com/?p=9137#comment-19748 Merci pour cette article. Les explications sont toujours top.

]]>
By: herison http://sametmax.com/le-namedtuple-la-structure-mal-aimee/#comment-19744 Fri, 14 Feb 2014 11:14:40 +0000 http://sametmax.com/?p=9137#comment-19744 bah y a pas d’image ? ^^

namedtuple fabrique dynamiquement une classe qui encapsule un tuple. Je trouve que c’est à cheval entre 2 technique:
1) J’utilise des classes pour avoir une couche d’abstraction propre
2) Je fou toutes mes données dans des tuples qui contiennent des dicts qui contiennent des tuples et je fais un:
voitures[ 'Md Michoue' ][5][3]['heure'][0]
Pour savoir à quelle heure Md Michoue a prit sa voiture pour aller à la plage.

étant (trop) souvent confronté a du legacy code de catégorie 2, je suis plutôt partisan de la 1er technique et je n’ai pas encore trouver le besoin d’utiliser les NamedTuple

]]>
By: kontre http://sametmax.com/le-namedtuple-la-structure-mal-aimee/#comment-19738 Fri, 14 Feb 2014 10:11:05 +0000 http://sametmax.com/?p=9137#comment-19738 @fpp: Elle est fausse, si tu executes le code la dernière ligne lance une AssertionError. J’ai envoyé un mail au mec pour qu’il corrige ça.

]]>
By: foxmask http://sametmax.com/le-namedtuple-la-structure-mal-aimee/#comment-19721 Fri, 14 Feb 2014 07:20:37 +0000 http://sametmax.com/?p=9137#comment-19721 @sam : mouarf … mais alors .. tu testes pas le code de tes articles ? *:o)

]]>
By: fpp http://sametmax.com/le-namedtuple-la-structure-mal-aimee/#comment-19705 Thu, 13 Feb 2014 21:31:08 +0000 http://sametmax.com/?p=9137#comment-19705 En effet ! Je m’étais fié à l’explication donnée par mon aide-mémoire préféré, le “Python Quick Reference”:
http://rgruet.free.fr/PQR27/PQR2.7.html#namedtuples
Mais la fin de l’exemple est au mieux trompeuse, sinon incorrecte…

]]>
By: kontre http://sametmax.com/le-namedtuple-la-structure-mal-aimee/#comment-19704 Thu, 13 Feb 2014 20:45:27 +0000 http://sametmax.com/?p=9137#comment-19704 @fpp: un tuple modifiable, même named, je trouvais ça étrange alors j’ai regardé: _replace() ne modifie pas le tuple, mais renvoie une copie en changeant les valeurs passées en argument (comme string.replace()). Donc il faut faire :
sam = sam._replace(signe_particulier="Est totalement partial")
Les namedtuples sont bien non modifiables !

]]>
By: PyMousse http://sametmax.com/le-namedtuple-la-structure-mal-aimee/#comment-19702 Thu, 13 Feb 2014 20:33:51 +0000 http://sametmax.com/?p=9137#comment-19702 Les namedtuples m’ont toujours fait penser aux beans java.

]]>