Python 3.9.0

Une nouvelle version stable du populaire langage de programmation Python a été publiée.

Python est un langage de programmation généraliste de haut niveau visant à améliorer la productivité des développeurs et la lisibilité du code. Les principales fonctionnalités sont le typage dynamique, la gestion automatique de la mémoire, l'introspection complète, le mécanisme de gestion des exceptions, la prise en charge du calcul multithread et les structures de données de haut niveau.

Python est un langage stable et répandu. Il est utilisé dans de nombreux projets et à divers titres : comme langage de programmation principal ou pour créer des extensions et des intégrations d'applications. Principaux domaines d'application : développement Web, apprentissage automatique et analyse de données, automatisation et administration système. Python occupe actuellement la troisième place du classement TIOBÉ.

Les principaux changements:

Nouvel analyseur haute performance basé sur les grammaires PEG.

Dans la nouvelle version, l'analyseur Python actuel basé sur les grammaires LL(1) (grammaire KS) est remplacé par un nouvel analyseur stable et performant basé sur PEG (grammaire PB). Les analyseurs pour les langues représentées par les grammaires KS, tels que les analyseurs LR, nécessitent une étape d'analyse lexicale spéciale qui divise l'entrée en fonction des espaces, de la ponctuation, etc. Ceci est nécessaire car ces analyseurs utilisent la préparation pour traiter certaines grammaires KS en temps linéaire. Les grammaires RV ne nécessitent pas d'étape d'analyse lexicale distincte, et les règles correspondantes peuvent être établies avec d'autres règles de grammaire.

Nouveaux opérateurs et fonctions

Deux nouveaux opérateurs ont été ajoutés à la classe dict intégrée, | pour fusionner des dictionnaires et |= pour la mise à jour.

Deux nouvelles fonctions ont été ajoutées à la classe str : str.removeprefix(prefix) et str.removesuffix(suffix).

Indication de type pour les types de collections intégrés

Cette version inclut la prise en charge de la syntaxe du générateur dans toutes les collections standard actuellement disponibles.

def read_blog_tags(tags: list[str]) -> Aucun :
pour les balises dans les balises :
print("Nom de la balise", balise)

D'autres changements

  • PEP 573 Accès à l'état du module à l'aide des méthodes d'extension C

  • PEP 593 Fonctions flexibles et annotations variables

  • PEP 602 Python passe aux versions stables annuelles

  • PEP 614 Assouplissement des restrictions grammaticales sur les décorateurs

  • PEP 615 Prise en charge de la base de données de fuseau horaire IANA dans la bibliothèque standard

  • BPO 38379 Le garbage collection ne se bloque pas sur les objets récupérés

  • BPO 38692 os.pidfd_open, pour le contrôle de processus sans courses ni signaux ;

  • BPO 39926 Prise en charge Unicode mise à jour vers la version 13.0.0

  • BPO 1635741, Python ne fuit plus lors de l'initialisation de Python plusieurs fois dans le même processus

  • Collections Python (plage, tuple, ensemble, jeu gelé, liste, dict) accélérées avec l'appel vectoriel PEP 590

  • Certains modules Python (_abc, audioop, _bz2, _codecs, _contextvars, _crypt, _functools, _json, _locale, Operator, Resource, Time, _weakref) utilisent désormais l'initialisation polyphasée telle que définie dans la PEP 489.

  • Un certain nombre de modules de bibliothèque standard (audioop, ast, grp, _hashlib, pwd, _posixsubprocess, random, select, struct, termios, zlib) utilisent désormais l'ABI stable défini par PEP 384.

Source: linux.org.ru

Ajouter un commentaire