Python 3.7 est disponible, une version majeure
Avec beaucoup de nouvelles fonctionnalités et optimisations, et des améliorations de performance

Le , par Michael Guilloux, Chroniqueur Actualités
Quand on sait aujourd'hui que Python est l'un des langages de programmation les plus populaires au monde et qu'il n'est pas près de s'éteindre, chacune de ses versions doit être importante. C'est donc le cas pour Python 3.7 qui a été annoncé en version stable le 27 juin 2018. Il s'agit d'une version majeure et la première grosse mise à jour du langage en 18 mois, depuis la sortie de Python 3.6 en décembre 2016.

Il y a donc beaucoup de nouvelles fonctionnalités au menu, mais dans cette version, la Python Software Foundation rapporte également des « améliorations de performance notables dans de nombreux domaines ».

Parmi les fonctionnalités majeures de Python 3.7, on peut noter une nouvelle API C pour le stockage local des threads (en anglais, Thread Local Storage ou TLS). Pour information, le TLS est le mécanisme par lequel chaque thread d'un processus multithread donné alloue de l'espace de stockage pour les données spécifiques au thread. Dans les programmes multithread standards, les données sont partagées entre tous les threads d'un processus donné, alors que le stockage local des threads est le mécanisme d'allocation des données par thread. Python 3.7 se dote donc d'une nouvelle API TLS ajoutée à CPython, appelée "API Thread Specific Storage (TSS)". Celle-ci va remplacer l'utilisation de l'API TLS existante dans l'interpréteur CPython.

Python 3.7 améliore aussi la gestion de DeprecationWarning. Dans certaines versions du langage, les avertissements de dépréciation étaient masqués par défaut, ce qui rendait plus difficile de savoir quand les API étaient cassées par des changements. Dans Python 3.7, la gestion de DeprecationWarning a donc été modifiée de telle sorte que les avertissements soient de nouveau affichés par défaut, mais uniquement lorsque le code qui les déclenche est exécuté directement dans le module __main__. Par conséquent, les développeurs de scripts à un seul fichier et ceux utilisant Python interactivement devraient à nouveau voir les avertissements de dépréciation pour les API qu'ils utilisent, mais les avertissements de dépréciation déclenchés par les modules d'application, bibliothèques et frameworks importés continueront à être masqués par défaut.

Comme autre nouveauté, il y a aussi l’ajout de six nouvelles variantes « nanosecondes » des fonctions temporelles existantes au module time. Il s’agit des fonctions clock_gettime_ns(), clock_settime_ns(), monotonic_ns(), perf_counter_ns(), process_time_ns() et time_ns(). Elles sont similaires aux fonctions existantes sans le suffixe _ns, mais elles diffèrent par le fait qu'elles renvoient des nanosecondes sous la forme d'entiers au lieu de fractions de secondes.


Python 3.7 introduit aussi comme nouveautés :
  • l'évaluation différée des annotations, une nouvelle fonctionnalité de syntaxe ;
  • le support des variables de contexte via un nouveau module contextvars et un ensemble de nouvelles API C de CPython ;
  • async et await sont maintenant des mots clés réservés, ce qui est une bonne chose parce qu'ils font partie de la syntaxe Python depuis quelques releases, mais il était encore possible d'utiliser ces mots comme noms de variables ;
  • ajout du module dataclasses à la bibliothèque standard pour les classes de données, une nouvelle fonctionnalité. Cela réduit et simplifie le code nécessaire pour créer des classes qui stockent des données ;
  • ajout d'une nouvelle fonction intégrée breakpoint() pour permettre d'insérer des points d'arrêt avec moins de code ;
  • etc.

Vous trouverez plus de détails sur les nouveautés sur le site de la Python Software Foundation. Mais il faut également souligner que la documentation Python a été traduite dans de nouvelles langues, à savoir le français, le japonais et le coréen.

Avec cette nouvelle version, il devrait y avoir une raison supplémentaire de passer définitivement à Python 3.x. Rappelons d’ailleurs qu’au mois de mars, Guido van Rossum a fait savoir qu’il comptait mettre fin au support de Python 2.7 le 1er janvier 2020.

Sources : Annonce de la sortie de Python 3.7, Nouveautés de Python 3.7

Et vous ?

Utilisez-vous le langage Python ? Si oui, quelles versions et dans quels domaines ?
Que pensez-vous des nouveautés de cette version ?
Lesquelles appréciez-vous le plus ? Pourquoi ?

Voir aussi :

Black : l'outil de formatage de code Python transforme les guillemets droits simples en guillemets doubles, les auteurs expliquent leurs choix
Facebook lance Pyre, un vérificateur de type statique pour Python, cet outil va-t-il révolutionner le développement avec Python ?
Python devient le langage de programmation le plus populaire de mai 2018, d'après le baromètre PyPL
Python : Flask passe à la version 1.0, le micro-framework de développement web se dote de nouvelles fonctionnalités
Rubrique Python : forum, FAQ, tutoriels, sources, outils Python, livres, etc.


Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :
Contacter le responsable de la rubrique Accueil