Python 3.7

Nouvelles fonctionnalités :

Fonctionnalité

État

PEP 538

Conversion de l’ancienne locale C vers une locale basée sur UTF-8

PEP 539

Une nouvelle API C pour le stockage local au thread dans CPython

PEP 540

Mode UTF-8

PEP 552

pyc déterministe

PEP 553

breakpoint() intégré

PEP 557

Classes de données

PEP 560

Prise en charge native du module typing et des types génériques

PEP 562

__getattr__ et __dir__ au niveau du module

Partiel

PEP 563

Évaluation différée des annotations

PEP 564

Fonctions temporelles avec une résolution à la nanoseconde

Partiel [1]

PEP 565

Affichage des DeprecationWarning dans __main__

PEP 567

Variables de contexte

Autres modifications du langage :

async et await sont désormais des mots-clés réservés

Terminé

Les objets dict doivent préserver l’ordre d’insertion

Plus de 255 arguments peuvent désormais être passés à une fonction ; une fonction peut désormais avoir plus de 255 paramètres

bytes.fromhex() et bytearray.fromhex() ignorent désormais tous les espaces ASCII, et non plus seulement les espaces simples

str, bytes et bytearray prennent désormais en charge la nouvelle méthode isascii(), qui permet de vérifier si une chaîne ou des octets ne contiennent que des caractères ASCII

ImportError affiche désormais le nom du module et le chemin __file__ du module lorsqu’un from ... import ... échoue

Les importations circulaires impliquant des importations absolues avec liaison d’un sous-module à un nom sont désormais prises en charge

object.__format__(x, '') équivaut désormais à str(x) plutôt qu’à format(str(self), '')

Afin de mieux prendre en charge la création dynamique de traces de pile, types.TracebackType peut désormais être instancié depuis du code Python, et l’attribut tb_next des tracebacks est désormais accessible en écriture

Lors de l’utilisation de l’option -m, sys.path[0] est désormais immédiatement développé en chemin complet du répertoire de démarrage, plutôt que d’être laissé comme répertoire vide (ce qui permet les importations depuis le répertoire de travail courant au moment où une importation a lieu)

La nouvelle option -X importtime ou la variable d’environnement PYTHONPROFILEIMPORTTIME peuvent être utilisées pour afficher la durée de chaque importation de module

Modifications des modules intégrés :

asyncio

Trop nombreuses pour être listées

gc

Les nouvelles fonctionnalités incluent gc.freeze(), gc.unfreeze(), gc-get_freeze_count

math

math.remainder() ajoutée pour implémenter le reste de style IEEE 754

re

Un certain nombre d’améliorations, notamment une meilleure prise en charge du découpage sur des chaînes vides et la prise en charge de la copie des expressions compilées et des objets match

sys

sys.breakpointhook() ajoutée. sys.get(/set)_coroutine_origin_tracking_depth() ajoutées

time

Principalement des mises à jour pour prendre en charge la résolution à la nanoseconde dans le PEP564, voir ci-dessus

Notes