Python LanguageIncompatibilités entre Python 2 et Python 3


Introduction

Contrairement à la plupart des langages, Python prend en charge deux versions principales. Depuis 2008, quand Python 3 est sorti, beaucoup ont fait la transition, alors que beaucoup ne l'ont pas fait. Afin de comprendre les deux, cette section couvre les différences importantes entre Python 2 et Python 3.

Remarques

Il existe actuellement deux versions prises en charge de Python: 2.7 (Python 2) et 3.6 (Python 3). De plus, les versions 3.3 et 3.4 reçoivent les mises à jour de sécurité au format source.

Python 2.7 est rétrocompatible avec la plupart des versions antérieures de Python et peut exécuter le code Python de la plupart des versions 1.x et 2.x de Python sans modification. Il est largement disponible, avec une vaste collection de paquets. Il est également considéré comme obsolète par les développeurs de CPython et ne reçoit que le développement de la sécurité et des correctifs. Les développeurs de CPython ont l’intention d’abandonner cette version du langage en 2020 .

Selon Python Enhancement Proposal 373, il n'y aura pas de versions futures planifiées de Python 2 après le 25 juin 2016, mais les corrections de bogues et les mises à jour de sécurité seront prises en charge jusqu'en 2020 (il ne spécifie pas la date exacte de 2020). 2.)

Python 3 a intentionnellement rompu la compatibilité avec les versions antérieures pour répondre aux préoccupations des développeurs de langage concernant le noyau du langage. Python 3 reçoit de nouveaux développements et de nouvelles fonctionnalités. C'est la version du langage que les développeurs de langue ont l'intention de faire évoluer.

Au fil du temps, entre la version initiale de Python 3.0 et la version actuelle, certaines fonctionnalités de Python 3 ont été transférées dans Python 2.6, et d'autres parties de Python 3 ont été étendues pour avoir une syntaxe compatible avec Python 2. Il est donc possible d'écrire Python qui fonctionnera sur Python 2 et Python 3, en utilisant les futures importations et les modules spéciaux (comme six ).

Les futures importations doivent être au début de votre module:

from __future__ import print_function
# other imports and instructions go after __future__
print('Hello world')

Pour plus d'informations sur le module __future__ , consultez la page correspondante dans la documentation Python .

L' outil 2to3 est un programme Python qui convertit le code Python 2.x en code Python 3.x. Voir aussi la documentation Python .

Le paquet six fournit des utilitaires pour la compatibilité avec Python 2/3:

  • accès unifié aux bibliothèques renommées
  • variables pour les types chaîne / unicode
  • fonctions pour la méthode qui a été supprimée ou a été renommée

Une référence pour les différences entre Python 2 et Python 3 peut être trouvée ici .

Incompatibilités entre Python 2 et Python 3 Exemples Liés