← back
frTC

Python 3.11 : des messages d'erreur plus rapides et plus efficaces, des exceptions groupées, des indications de type et plus encore

Cet article vous permettra de découvrir toutes les fonctionnalités importantes de python3.11 en moins de 3 minutes.

Tout d'abord, il est devenu plus rapide

Diverses améliorations de la vitesse ont été mises en œuvre, ce qui se traduit par un démarrage plus rapide et une exécution plus rapide.
Python 3.11 est en moyenne 25 % plus rapide que la version 3.10. Selon votre charge de travail, la vitesse peut atteindre 10 à 60 %.

Amélioration des messages d'erreur

L'interpréteur indique désormais l'expression exacte qui a provoqué l'erreur, au lieu du simple numéro de ligne.

Better error messages example

Par exemple, ici, une variable est nulle, nous ne pouvons donc pas accéder au point_2.x. Ceci est particulièrement utile pour les débutants.

La méthode add_note est ajoutée à l'exception de base

Il vous permet d'ajouter des informations supplémentaires, qui apparaissent ensuite dans la traceback.

Add note method example

Ici, lorsque nous attrapons une exception, nous pouvons appeler add_note et lorsque celle-ci est relancée, nous voyons les 2 notes et le traceback.

Groupes d'exceptions et exceptions *

Ils permettent de regrouper les exceptions et de les lever ensemble. Tout d'abord, le groupe d'exceptions est une sous-classe de l'exception normale, nous pouvons donc obtenir tout le comportement de la classe de base. Dans un groupe d'exceptions, nous pouvons définir plusieurs exceptions internes et des groupes d'exceptions imbriqués. Et lorsque nous levons cette exception et regardons le retour de trace, nous pouvons facilement suivre l'architecture du groupe, puis lorsque nous voulons attraper cette exception, nous pouvons utiliser except * pour correspondre à tous les sous-groupes du groupe d'exceptions. Cela permet aux programmeurs de lever et de traiter simultanément plusieurs exceptions liées.

Nouvelles fonctions d'aide à la saisie

La nouvelle annotation de chaîne littérale peut être utilisée pour indiquer que le paramètre de la fonction peut être de n'importe quel type de chaîne littérale. Les vérificateurs de type peuvent alors faire en sorte que les fonctions sensibles, telles que celles qui exécutent des instructions SQL, ne soient appelées qu'avec des arguments statiques, offrant ainsi une protection contre les attaques par injection. Les mentions "requis" et "non requis" fournissent un moyen direct de marquer si des éléments individuels d'un type doivent être présents.

Type hint features demonstration

Ces deux définitions sont équivalentes, donc dans ce cas le titre doit être défini et la nouvelle annotation self avec un s majuscule fournit un moyen simple et intuitif d'annoter les méthodes qui retournent une instance de leur classe. Les cas d'utilisation courants comprennent les constructeurs alternatifs fournis en tant que méthodes de classe.

Nouveau module : tomllib

Il ajoute un support pour l'analyse des fichiers tomml.

Asyncio taskgroup

La classe asyncio task group a été ajoutée. Il s'agit d'un gestionnaire de contexte asynchrone contenant un groupe de tâches qui sont ensuite attendues lorsque le gestionnaire de contexte sort. Pour le nouveau code, il est recommandé d'utiliser cette classe plutôt que d'utiliser directement create task et gather.

Nouvelles fonctions mathématiques

Deux nouvelles fonctions intéressantes ont été ajoutées : math.exp2 qui renvoie la puissance 2 de x et math.cbrt qui renvoie la racine cubique de x.

# also available in en