AccueilActualités informatiqueLangage de programmation : Python 3.10 introduit le filtrage par motif

Langage de programmation : Python 3.10 introduit le filtrage par motif

Avec la sortie de Python 3.10, les développeurs peuvent s’attendre à une amélioration complète de la syntaxe : le filtrage. Toutefois, la dernière version du langage de programmation comporte toute une série d’autres nouveautés et améliorations, notamment des messages d’erreur plus utiles et plus significatifs pour le débogage, des indications de type plus spécifiques et plus faciles à lire et de nouvelles fonctions pour le calcul de statistiques multivariables.

Sommaire

Après que le langage de programmation a été officiellement autorisé à célébrer son 30e anniversaire le 20 février 2021, l’équipe de développement a présenté une nouvelle version avec Python 3.10, qui apporte de nombreuses innovations. Les possibilités offertes par le filtrage structurel (PEP 634) devraient avant tout profiter à tous ceux qui traitent de manière intensive les structures de données.

Pour le filtrage, la syntaxe a été étendue par les deux instructions suivantes match et case qui peut désormais être utilisé pour extraire des informations de types de données complexes, ramifier la structure des données ou appliquer d’autres actions spécifiques à une grande variété de formes de données. Les modèles de mise en correspondance peuvent consister en des séquences (listes, tuples, etc.), des structures de mappage (par exemple, des dictionnaires), des types de données primitifs ou des instances de classes. A match-L’instruction prend une expression et compare sa valeur avec des modèles successifs spécifiés comme des blocs de cas. Le listing suivant montre un exemple de modèle avec un littéral et une variable :

# point is an (x, y) tuple
match point:
    case (0, 0):
        print("Origin")
    case (0, y):
        print(f"Y={y}")
    case (x, 0):
        print(f"X={x}")
    case (x, y):
        print(f"X={x}, Y={y}")
    case _:
        raise ValueError("Not a point")

Si Python est généralement considéré comme un langage de programmation facile à apprendre et à utiliser, l’équipe de développement a identifié un potentiel d’amélioration en termes de débogage et a amélioré la compréhensibilité des messages d’erreur. Déjà lors de l’analyse du code, l’interpréteur devrait maintenant fournir des informations plus précises et utiles. Dans les versions précédentes de Python, les développeurs devaient se battre avec des messages d’erreur incompréhensibles tels que « I’m sorry ». SyntaxError: unexpected EOF while parsing Les développeurs devaient rechercher eux-mêmes les parenthèses non fermées, les deux-points ou les virgules manquants. À partir de la version 3.10, l’interpréteur donne des messages d’erreur concrets dans de tels cas. SyntaxError-des indications sur l’endroit du code où se trouve l’erreur, comme l’absence de crochet fermant dans l’exemple suivant :

File "example.py", line 1
    expected = {9: 1, 18: 2, 19: 2, 27: 3, 28: 3, 29: 3, 36: 4, 37: 4,
               ^
SyntaxError: '{' was never closed

D’autres innovations importantes dans la version Python concernent le système de types statiques. Afin de simplifier le code sans perdre les informations de type, à partir de Python 3.10, comme suggéré dans le PEP 604, il est désormais possible d’utiliser Union[float, int] par le plus spécifique float | int le remplacer. Avec les indications de type, il est également possible de list introduite dans Python 3.9 à la place de la fonction typing.List peut être utilisé. Cela simplifie une section de code comme

from typing import List, Union

def mean(numbers: List[Union[float, int]]) -> float:
    return sum(numbers) / len(numbers)

à

def mean(numbers: list[float | int]) -> float:
    return sum(numbers) / len(numbers)

Dans ce code, non seulement l’annotation est à numbers est plus facile à lire, mais il n’y a pas non plus d’importation à partir de typing nécessaire.

Un aperçu détaillé de toutes les nouvelles fonctionnalités est disponible sur le Python Insider Blog et dans la documentation de Python 3.10. La nouvelle version du langage de programmation est maintenant disponible au téléchargement.

Plus d'articles