IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Python 3.12 : la dernière version apporte des modifications du langage et de la bibliothèque standard
Elle comporte aussi une amélioration des messages d'erreur

Le , par Jade Emy

227PARTAGES

7  0 
Python 3.12 est la dernière version stable du langage de programmation Python, avec un mélange de modifications du langage et de la bibliothèque standard. Les modifications apportées à la bibliothèque se concentrent sur le nettoyage des API obsolètes, la facilité d'utilisation et la correction. À noter que le paquet distutils a été supprimé de la bibliothèque standard. La prise en charge des systèmes de fichiers dans os et pathlib a fait l'objet d'un certain nombre d'améliorations, et plusieurs modules sont plus performants.

Les modifications apportées au langage se concentrent sur la facilité d'utilisation : les f-strings ont été débarrassées de nombreuses limitations et les suggestions "Did you mean ..." continuent de s'améliorer. La nouvelle syntaxe des paramètres de type et la déclaration de type améliorent l'ergonomie de l'utilisation des types génériques et des alias de type avec les vérificateurs de types statiques.


PEP 695 : Syntaxe des paramètres de type

Les classes et fonctions génériques de la PEP 484 étaient déclarées à l'aide d'une syntaxe verbeuse qui ne permettait pas de déterminer clairement la portée des paramètres de type et nécessitait des déclarations explicites de variance.

La PEP 695 introduit une nouvelle méthode, plus compacte et plus explicite, pour créer des classes et des fonctions génériques :


La nouvelle syntaxe permet de déclarer des paramètres TypeVarTuple et ParamSpec, ainsi que des paramètres TypeVar avec des limites ou des contraintes :


La valeur des alias de type et les contraintes des variables de type créées à l'aide de cette syntaxe ne sont évaluées qu'à la demande. Cela signifie que les alias de type peuvent faire référence à d'autres types définis plus loin dans le fichier.

Les paramètres de type déclarés au moyen d'une liste de paramètres de type sont visibles dans la portée de la déclaration et dans toute portée imbriquée, mais pas dans la portée extérieure. Par exemple, ils peuvent être utilisés dans les annotations de type pour les méthodes d'une classe générique ou dans le corps de la classe. Toutefois, ils ne peuvent pas être utilisés dans la portée du module après la définition de la classe.

Afin de prendre en charge cette sémantique de portée, un nouveau type de portée est introduit, la portée d'annotation. Les portées d'annotation se comportent pour la plupart comme les portées de fonction, mais interagissent différemment avec les portées de classe qui les entourent. Dans Python 3.13, les annotations seront également évaluées dans les portées d'annotation.

PEP 701 : Formalisation syntaxique des f-strings

La PEP 701 lève certaines restrictions sur l'utilisation des f-strings. Les composants d'expression à l'intérieur des f-strings peuvent maintenant être n'importe quelle expression Python valide, y compris les chaînes réutilisant le même guillemet que le f-strings contenant, les expressions multi-lignes, les commentaires, les antislashs, et les séquences d'échappement unicode. Voyons cela en détail :

  • Réutilisation des guillemets : dans Python 3.11, la réutilisation des mêmes guillemets que la f-string contenante soulève une SyntaxError, obligeant l'utilisateur à utiliser d'autres guillemets disponibles (comme des guillemets doubles ou triples si la chaîne f utilise des guillemets simples). Dans Python 3.12, vous pouvez maintenant faire des choses comme ceci :

  • Expressions et commentaires sur plusieurs lignes : Dans Python 3.11, les expressions f-string doivent être définies sur une seule ligne, même si l'expression à l'intérieur de la f-string pourrait normalement s'étendre sur plusieurs lignes (comme les listes littérales définies sur plusieurs lignes), ce qui les rend plus difficiles à lire. Dans Python 3.12, vous pouvez désormais définir des chaînes f s'étendant sur plusieurs lignes et ajouter des commentaires en ligne :

  • Barres obliques inversées et caractères unicode : avant Python 3.12, les expressions f-string ne pouvaient contenir aucun caractère \. Cela affectait également les séquences d'échappement unicode (telles que \N{snowman}) car elles contiennent la partie \N qui, auparavant, ne pouvait pas faire partie des composants d'expression des chaînes f. Désormais, vous pouvez définir des expressions comme celles-ci:


Un effet secondaire positif de la façon dont cette fonctionnalité a été implémentée (en analysant les chaînes f avec l'analyseur PEG) est que les messages d...
La fin de cet article est réservée aux abonnés. Soutenez le Club Developpez.com en prenant un abonnement pour que nous puissions continuer à vous proposer des publications.

Une erreur dans cette actualité ? Signalez-nous-la !