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 n'ont-ils pas pensé qu'il était absolument nécessaire de le rendre rétrocompatible?
Python 3.0 implémente de nombreuses fonctionnalités très utiles et rompt la compatibilité descendante. Il le fait exprès, de sorte que les grandes fonctionnalités peuvent être implémentées même si le code Python 2.x peut ne pas fonctionner correctement sous Python 3.x.
Donc, fondamentalement, Python 3.0 n'est pas rétrocompatible exprès . Grâce à cela, vous pouvez bénéficier d'un tout nouvel ensemble de fonctionnalités. Il est même appelé " Python 3000" ou " Python 3K".
De " Quoi de neuf dans 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 le premier jamais intentionnellement incompatible à l'envers Python . Il y a plus de changements que dans une version classique, et plus importants pour tous les utilisateurs Python. Néanmoins, après avoir digéré les changements, vous constater que Python n'a vraiment pas beaucoup changé - en gros, nous réparons principalement les ennuis et les verrues bien connus, et en supprimons beaucoup de vieux cruft .
Certaines des fonctionnalités les plus remarquables qui peuvent être considérées comme brisant la compatibilité descendante, mais améliorant le langage en même temps, sont:
print
est maintenant une fonction, pas une instruction, et son utilisation comme instruction entraînera une erreur,cmp
pour le tri de fonctions comme sorted()
et list.sort()
n'est plus pris en charge et doit être remplacé par l'argument key
,int
est désormais le même que Python 2.x long
, ce qui rend le traitement des nombres moins complexe,/
L'opérateur est désormais un opérateur pour la véritable division par défaut (vous pouvez toujours utiliser //
pour la division du sol),True
, False
et None
sont maintenant des mots réservés (vous ne pouvez donc pas faire True, False = False, True
,BaseException
, doivent être levées et interceptées différemment que dans Python 2.x,