Comment utiliser les nouvelles fonctionnalités les plus intéressantes de Python 3.10

  • FrançaisFrançais



  • Le développement de Python 3.10 s’est stabilisé et nous pouvons enfin tester toutes les nouvelles fonctionnalités qui seront incluses dans la version finale.

    Nous couvrirons quelques-uns des ajouts les plus intéressants à Python : correspondance de modèles structurels, gestionnaires de contexte entre parenthèses, plus de frappe et les messages d’erreur nouveaux et améliorés.

    Découvrez la version vidéo de l’article ici :

    se

    Correspondance de motifs structurels

    La correspondance de motifs structurels est une fonctionnalité incroyable à ajouter à Python – vraiment géniale.

    Imaginez une instruction if-else qui ressemble à ceci :

    Vous prenez cela et vous modifiez la syntaxe pour qu’elle ressemble plus à ceci :

    Cette est le nouveau match-case déclaration – cool, mais rien de spécial jusqu’à présent.

    Qu’est-ce qui fait le match-case déclaration si intéressante est quelque chose qui s’appelle correspondance de modèle structurel.

    La correspondance de modèle structurel nous permet d’effectuer la même logique de correspondance de cas, mais en fonction de la correspondance entre la structure de notre objet de comparaison et un modèle donné.

    Définissons donc deux dictionnaires, tous deux avec des structures différentes.

    Maintenant, nous pourrions écrire un modèle pour correspondre dict_a ainsi:

    Et un modèle pour correspondre dict_b trop:

    Si nous rassemblons les deux dans une déclaration de cas de correspondance, à côté de ce qui est effectivement un else/attrape-tout avec case _ – on a:

    Plutôt cool non ? J’ai déjà trouvé cela incroyablement utile pour le traitement des données – dont vous pouvez trouver un exemple dans cette vidéo à 15:22.

    Gestionnaires de contexte entre parenthèses

    Un changement plus petit qui découle d’un changement beaucoup plus important qui est apparu avec Python 3.9 – le nouvel analyseur basé sur PEG.

    L’analyseur Python précédent avait de nombreuses limitations, qui limitaient les développeurs Python dans la syntaxe qu’ils pouvaient autoriser.

    L’analyseur PEG de Python 3.9 a supprimé ces barrières, ce qui à long terme pourrait conduire à une syntaxe plus élégante – notre premier exemple de ce changement est le nouveau gestionnaire de contexte entre parenthèses.

    Avant Python 3.9, nous pouvions écrire quelque chose comme ceci pour ouvrir deux (ou plus) flux d’E/S de fichiers :

    Cette première ligne est assez longue, trop longue en fait. Mais en raison des limitations de l’analyseur, la seule façon de diviser cette ligne sur plusieurs lignes était d’utiliser le caractère de continuation de ligne :

    Cela fonctionne, mais ce n’est pas Pythonic. Avec le nouvel analyseur, nous sommes maintenant en mesure de diviser cette ligne sur plusieurs lignes en utilisant parenthèses ainsi:

    Lequel est Pythonique.

    Maintenant, avant de continuer, il y a une petite bizarrerie dans ce Nouveau fonctionnalité. Ce n’est pas tout à fait nouveau…

    Si on écrit :

    En Python 3.9 — ça marche. C’est parce que le nouvel analyseur a activé cette syntaxe, bien qu’elle ne soit pas officiellement supporté jusqu’à Python 3.10.

    Plus de saisie

    Il y a aussi plus de mises à jour des fonctionnalités de frappe de Python, sur lesquelles j’ai écrit plus en détail ici si vous êtes intéressé.

    L’ajout le plus intéressant ici est l’inclusion d’un nouvel opérateur qui se comporte comme un OU ALORS logique pour les types, quelque chose que nous avons précédemment utilisé le Union méthode pour :

    Maintenant, nous n’avons pas besoin d’écrire from typing import Union, et Union[int, float] a été simplifié en int | float – qui a l’air beaucoup plus propre :

    Meilleurs messages d’erreur

    Dites-moi que vous n’avez pas sauté sur Google la première fois que vous avez vu :

    SyntaxError : EOF inattendu lors de l’analyse

    Le résultat numéro un dans Google lors de la saisie Erreur de syntaxe suggère que beaucoup d’entre nous l’ont certainement fait à un moment donné.