Une nouvelle version stable du langage de programmation populaire Python vient de sortir.
Python est un langage de programmation de haut niveau, polyvalent, conçu pour améliorer la productivité des développeurs et la lisibilité du code. Ses principales caractéristiques incluent la typage dynamique, la gestion automatique de la mémoire, l'introspection complète, un mécanisme de gestion des exceptions, le support des calculs multi-thread et des structures de données de haut niveau.
Python est un langage stable et largement utilisé. Il est utilisé dans de nombreux projets et dans diverses qualités : en tant que langage principal ou pour la création d'extensions et l'intégration d'applications. Les principales applications incluent le développement web, l'apprentissage automatique et l'analyse de données, ainsi que l'automatisation et l'administration système. Actuellement, Python se classe troisième dans le classement TIOBE.
Principales modifications :
Un nouvel analyseur syntaxique haute performance basé sur des grammaires PEG.
Dans la nouvelle version, l'analyseur actuel de Python basé sur des grammaires LL(1) (grammaire contextuelle) a été remplacé par un nouvel analyseur syntaxique haute performance et stable basé sur PEG (grammaire de type régulier). Les analyseurs pour les langages basés sur des grammaires contextuelles, tels que les analyseurs LR, nécessitent une étape lexicale séparée, qui décompose les entrées en fonction des espaces, de la ponctuation, etc. Cela est nécessaire car ces analyseurs utilisent une analyse préalable pour traiter certaines grammaires contextuelles en temps linéaire. Les grammaires de type régulier ne nécessitent pas d'étape lexicale distincte, et les règles peuvent être intégrées avec d'autres règles de grammaire.
Nouveaux opérateurs et fonctions
Deux nouveaux opérateurs ont été ajoutés à la classe intégrée dict, | pour fusionner les dictionnaires et |= pour mettre à jour.
Deux nouvelles fonctions ont été ajoutées à la classe str : str.removeprefix(prefix) et str.removesuffix(suffix).
Annotation de type pour les types collectifs intégrés
Cette version inclut le support de la syntaxe des générateurs dans toutes les collections standard actuellement disponibles.
def read_blog_tags(tags: list[str]) -> None :
for tag in tags :
print("Nom de tag", tag)
Autres changements
PEP 573 Accès à l'état du module via des méthodes d'extension C
PEP 593 Fonctions flexibles et annotations de variables
PEP 602 Python passe à des versions stables annuelles
PEP 614 Assouplissement des restrictions grammaticales sur les décorateurs
PEP 615 Support pour les bases de données IANA des fuseaux horaires dans la bibliothèque standard
BPO 38379 la collecte des déchets n'est pas bloquée sur les objets restaurés
BPO 38692 os.pidfd_open, pour gérer les processus sans conditions de concurrence ni signaux ;
BPO 39926 le support Unicode a été mis à jour vers la version 13.0.0
BPO 1635741, lors de l'initialisation multiple de Python dans le même processus, il n'y a plus de fuite de mémoire
Les collections Python (range, tuple, set, frozenset, list, dict) ont été accélérées grâce à l'appel vectoriel PEP 590
Certains modules Python (_abc, audioop, _bz2, _codecs, _contextvars, _crypt, _functools, _json, _locale, operator, resource, time, _weakref) utilisent désormais une initialisation multi-phase, comme défini dans PEP 489
Une série de modules standard de la bibliothèque (audioop, ast, grp, _hashlib, pwd, _posixsubprocess, random, select, struct, termios, zlib) utilisent désormais un ABI stable défini par PEP 384.
Source : linux.org.ru
