8
votes

Pourquoi Python 3 (ou plus tard) mieux que Python 2?

J'ai appris Python comme ma première langue sérieuse (non basique) il y a environ 10 ans. Depuis lors, j'ai appris beaucoup d'autres, mais j'ai tendance à "penser" en python. Lorsque je regarde la liste des changements, je ne vois pas un J'ai besoin de cette fonctionnalité . Je me dis habituellement, Hmm qui serait un bon moyen de le faire, mais pourquoi le changer maintenant?

Des choses comme la modification de la division de plancher par défaut pourraient être une véritable douleur à changer pour de grands projets. Il semble que les principaux joueurs traînent leurs pieds. Quelle est la fonctionnalité clé qui me ferait envie d'investir dans une autre courbe d'apprentissage?


2 commentaires

"pourrait être une véritable douleur à changer pour de grands projets"? Ah bon? Je penserais qu'avec un design raisonnablement bon, les mathématiques sont raisonnablement centralisées et cela conduirait à une simplification. "Une autre courbe d'apprentissage"? De quoi parles-tu? Python 3 implique presque aucun apprentissage - il s'agit de "désapprendre" Python 2 pirails. Qu'est-ce que tu dis? Avez-vous des exemples spécifiques de cette "courbe d'apprentissage"?


C'est un point juste. Pourquoi python3 pas sera meilleur? Pourquoi déranger avec une version 3 si c'est pire?


4 Réponses :


10
votes

En tant que caractéristique clé, beaucoup de gens semblent être assez sortis sur ( soi-disant ) Support unicode transparent. Ils l'ont modifié à partir de STR (type de chaîne de graphique de caractères 8 bits) et Unicode (chaîne Unicode), sur STR (par défaut (Unicode Compatible) String) et octets (données binaires sous forme de "chaîne" 8 bits).

(Je pense que la séparation des listes d'octets de Strings est une bonne idée, mais je déteste aussi Unicode, alors si quelque chose, ce serait un pire pour moi personnellement.)


4 commentaires

+1. Je déteste traiter avec des chaînes mixtes unicode et non unicode.


Traiter avec des chaînes non unicodes en 2.x est une douleur. Surtout si vous devez "mettre à niveau" un programme qui n'a été écrit que avec le personnage de l'ASCII en tête. Je veux basculer pour cette raison seule.


Ouais, je déteste tout ce désordre str / unicode et adopté "toutes les chaînes devraient être unicode!" Approchez il y a longtemps, mais il prend toujours soin de réparer des trucs que je reçois des packages tiers.


J'espère que cela fonctionne aussi bien dans la pratique que le support Unicode de TCL. Venir en retard au parti de Python (avoir seulement quelques années sous ma courroie) J'ai été étonné du manque de soutien unicode décent. Heureux de voir la version 3 augmente jusqu'à la plaque.



3
votes

Une bonne discussion de cela peut être trouvée dans le wiki Python; Dois-je utiliser Python 2 ou Python 3 pour mon activité de développement?


5 commentaires

Pourquoi avez-vous supprimé l'attribution ajoutée par un autre utilisateur?


(Dernier édition 2010-07-06 21:48:55 de MOBILE-110-135) Cependant, j'étais la dernière personne à le modifier car le formatage devait être ajouté manuellement. En outre, le wiki pourrait changer; Cette réponse devrait rester constante.


hahahahahahahhah :) Peut-être qu'un lien aurait été meilleur mais oh bien


Il n'est donc pas censé être un remplaçant pour l'ensemble de l'Internet. Si vous ne pouvez pas écrire votre propre réponse, une brève sommation et un lien aurait été meilleur que le clonage non attribué.


Il y a une différence entre citer une partie de quelque chose (dans le contexte de certains de vos propres mots), et simplement copier et coller une énorme morale de texte (le formatage ne le fait pas la vôtre). Cela est allé bien au-delà de cette ligne, surtout que vous délibérément supprimé l'attribution.



1
votes

choses comme changeant plancher par défaut la division pourrait être une vraie douleur à changement pour les grands projets.

Si vous aviez commencé à faire le changement il y a 8 ans Lorsque Python 2.2 a été introduit avec // et de __future__ division d'importation , il ne serait pas 'T être une douleur maintenant. Personnellement, je suis content de enfin se débarrasser de la division de style ancien!

Ma deuxième fonctionnalité de Python 3.x est la STR / octets distinction. En plus de faciliter la prise en charge Unicode, octets est beaucoup plus pratique pour la base de données blob S que tampon était.


0 commentaires

0
votes

sur la programmation d'enseignement avec Python 3.0 , bien qu'un Un peu daté, est l'un des meilleurs articles que j'ai lus sur les avantages de PY3K.


0 commentaires