Comments on: Pourquoi ','.join en Python ? http://sametmax.com/pourquoi-join-en-python/ Du code, du cul Fri, 06 Sep 2019 09:34:15 +0000 hourly 1 https://wordpress.org/?v=4.9.7 By: Sam http://sametmax.com/pourquoi-join-en-python/#comment-1021 Fri, 03 Aug 2012 12:12:18 +0000 http://sametmax.com/?p=1467#comment-1021 Voilà. Moi autant ','.join me parle complètement, autant len(obj) à la place de obj.length je trouve ça bidon puisque len() ne fait qu’appeler __len__ de toute façon. Encore, si len() pouvait fallback sur __iter__, mais même pas.

]]>
By: Romain http://sametmax.com/pourquoi-join-en-python/#comment-1016 Fri, 03 Aug 2012 04:55:47 +0000 http://sametmax.com/?p=1467#comment-1016 OK implode est l’inverse d’explode mais PHP aurait pu coller à Perl et au reste du monde et utiliser split / join !

Pour les histoires de map / filter / reduce : c’est vrai que des fois, on a l’impression que Python ne sait pas trop choisir entre fonction et méthodes… Dans ce cadre là, c’est le choix de rendre l’objet iterable grâce à la méthode _iter_ et pas en rajoutant une tonne de méthodes comme avec un mixin comme dans Ruby (parce que Ruby ne rigole pas avec la taille des interfaces, c’est bien chiant d’ailleurs)

]]>
By: LeMeteore http://sametmax.com/pourquoi-join-en-python/#comment-1011 Thu, 02 Aug 2012 21:59:53 +0000 http://sametmax.com/?p=1467#comment-1011 Pourquoi map(func, iterable), merci pour l’explication. Je comprends mieux maintenant.

J’ai un ami qui il y a longtemps m’avait expliqué que c’etait (entre autre?) pour encourager un style de programmation purement fonctionnel.

]]>
By: Sam http://sametmax.com/pourquoi-join-en-python/#comment-1006 Thu, 02 Aug 2012 19:07:56 +0000 http://sametmax.com/?p=1467#comment-1006 Pour la même raison: pour qu’on puisse passer n’importe quel itérable à map et filter. On peut faire un map/filter sur autre chose qu’un séquence. Un itérable doit juste remplir une seule condition: pouvoir récupérer des valeurs une à une.

Si on suit la logique sequence.filter, sequence.map, sequence.join, alors on se retrouve à demander à tous les itérable d’implémenter un proxy de filter, map et join, ce qui revient à complexifier l’interface de chaque nouvel itérable codé.

Python fonctionne en duck typing, si c’est itérable, on peut maper, on peut filtrer, on peut joiner. L’action de maper, filtrer, joiner est indépendance de l’itérable, et donc ne fait pas partie de son interface.

]]>
By: shenshei http://sametmax.com/pourquoi-join-en-python/#comment-1004 Thu, 02 Aug 2012 18:48:08 +0000 http://sametmax.com/?p=1467#comment-1004 et pourquoi on a:
filter(function, sequence) et map(function, sequence)
et pas:
sequence.filter(function) et sequence.map(function)

car lors de l’imbrication de plusieurs map et filter la seconde solution est nettement plus lisible (pas besoin de jouer au poupées russes)

]]>
By: PHPman http://sametmax.com/pourquoi-join-en-python/#comment-1003 Thu, 02 Aug 2012 18:37:36 +0000 http://sametmax.com/?p=1467#comment-1003 Parce que join = implode :
http://in.php.net/manual/en/function.join.php

]]>
By: Sam http://sametmax.com/pourquoi-join-en-python/#comment-1000 Thu, 02 Aug 2012 17:55:43 +0000 http://sametmax.com/?p=1467#comment-1000 Parceque c’est l’inverse d’explode :-)

]]>
By: Romain http://sametmax.com/pourquoi-join-en-python/#comment-998 Thu, 02 Aug 2012 17:48:40 +0000 http://sametmax.com/?p=1467#comment-998 ça fait un peu réfléchir à l’envers mais on s’y fait… Et encore c’est parce que les codeurs pensent de travers :

‘,’.join(ma_liste) => ‘,’ joint les éléments de ma liste

Ce que propose Ruby roxe quand même pour ce qui est de la lisibilité, surtout associé à des blocs.

Mais ‘implode’ en PHP ? pourquoi ?

]]>