Pourquoi Python 3 n'est-il pas rétrocompatible? [fermé]
J'ai appris que Python 3 n'est pas rétrocompatible.
Cela n'affectera-t-il pas beaucoup d'applications utilisant des versions plus anciennes de Python?
Comment les développeurs de Python 3 ne pensaient-ils pas qu'il était absolument nécessaire de le rendre rétrocompatible?
1 réponses
Python 3.0 est-il rétrocompatible et pourquoi?
Python 3.0 implémente beaucoup de fonctionnalités très utiles et rompt la rétrocompatibilité. Il le fait exprès, de sorte que les fonctionnalités peuvent être implémentées même en dépit du fait Python 2.le code x peut ne pas fonctionner correctement sous Python 3.X.
Donc, fondamentalement, Python 3.0 n'est pas rétrocompatible à dessein . grâce à cela, vous pouvez bénéficier d'un tout nouvel ensemble de fonctionnalités. on l'appelle même " Python 3000" ou "Python 3K".
De "nouveautés de Python 3.0" (disponible ici):
Python 3.0, comparé à 2.6. Python 3.0, également connu sous le nom de "python 3000" ou "Py3K", est la première version Python intentionnellement incompatible avec le passé . Il y a plus de changements que dans une version typique, et plus qui sont importants pour tous les utilisateurs de Python. Néanmoins, après avoir digéré les changements, vous constaterez que Python n'a vraiment pas cela a beaucoup changé – en gros, Nous réparons surtout des désagréments et des verrues bien connus, et enlevons beaucoup de vieux cruft.
Caractéristiques Python nouveau dans 3.0, rupture de la rétrocompatibilité
Certaines des caractéristiques les plus notables qui peuvent être considérées comme une rupture de la rétrocompatibilité, mais l'amélioration de la langue en même temps, sont:
-
print
est maintenant une fonction, pas une instruction, et l'utiliser comme instruction entraînera un erreur, - diverses fonctions et méthodes renvoient maintenant un itérateur ou une vue au lieu de list, ce qui rend l'itération de leurs résultats plus efficace en mémoire (vous n'avez pas besoin de stocker toute la liste des résultats dans la mémoire),
-
cmp
argument pour les fonctions de tri commesorted()
etlist.sort()
n'est plus pris en charge, et doit être remplacé parkey
argument, -
int
est maintenant le même que Python 2.xlong
, ce qui rend le traitement des nombres moins complexe, -
/
l'opérateur est maintenant, un opérateur pour la division vraie par défaut (vous pouvez toujours utiliser//
pour la division au sol), - texte en Python 3.x est maintenant Unicode par défaut,
-
True
,False
etNone
sont maintenant des mots réservés (donc vous n'êtes pas capable de faireTrue, False = False, True
, - Modification de l'utilisation de la métaclasse,
- les exceptions doivent être dérivées de
BaseException
, doivent être soulevées et capturées différemment que dans Python 2.x, - et beaucoup plus d'autres changements, rendant Python plus lisible, cohérent & explicite,