Python 3.14 est arrivé avec la prise en charge des chaînes T
Python 3.14 est officiellement arrivé et apporte un mélange de changements au langage de base, aux entrailles de l'interpréteur et à la bibliothèque standard. Il s'agit de mises à jour majeures telles que les littéraux de chaînes de modèles, l'évaluation différée des annotations et même le support officiel des sous-interpréteurs dans la bibliothèque standard.
Python obtient des littéraux de chaînes de modèle, ou t-strings. Ceux-ci utilisent la syntaxe familière des f-strings (il suffit de remplacer le 'f' par un 't' comme ceci : t'Mister {name}'), mais au lieu de combiner immédiatement le texte statique et vos valeurs interpolées en un seul objet str, ils renvoient un objet Template. Cela sépare essentiellement les parties statiques et variables de la chaîne à l'exécution. Ce nouvel objet est incroyablement utile pour assainir l'entrée utilisateur, comme s'assurer qu'une chaîne est sûre pour le HTML ou pour une requête de base de données.
variety = 'Stilton'
template = t'Try some {variety} cheese!'
type(template)
La façon dont les annotations de type (comme le : str que vous mettez sur un argument de fonction) sont gérées a complètement changé avec l'évaluation différée. Les annotations ne sont plus évaluées immédiatement. Cela signifie qu'il n'est plus nécessaire d'encapsuler les annotations dans des chaînes de caractères pour éviter les NameError pour les références anticipées.
Ce qui m'intéresse le plus, c'est que l'interpréteur devient encore plus utile avec des messages d'erreur améliorés. Si vous faites une faute de frappe courante dans un mot-clé, comme taper "whille" au lieu de while, l'interpréteur vous suggérera désormais le mot-clé correct. Vous recevrez également des messages d'erreur spécifiques pour une syntaxe confuse, comme un bloc elif suivant un bloc else. Ces petits changements seront un véritable sauveur pour le débogage.
L'un des grands thèmes de Python 3.14 est la recherche de la rapidité et une meilleure gestion des systèmes modernes multi-cœurs. Pour ceux d'entre vous qui effectuent des travaux lourds et intensifs en CPU, la version libre-thread de Python, qui était expérimentale dans la 3.13, est désormais officiellement prise en charge. Cela signifie que la pénalité de performance sur le code mono-thread en mode libre-thread est maintenant réduite à environ cinq à dix pour cent, ce qui représente une amélioration significative. L'objectif est de tirer pleinement parti des processeurs multi-cœurs, afin que vous puissiez faire évoluer vos applications sans les limitations du Global Interpreter Lock.
Une fonctionnalité qui n'était auparavant accessible que via l'API C est désormais disponible dans la bibliothèque standard grâce au nouveau module concurrent.interpreters. On peut le comparer à obtenir l'isolation des processus avec l'efficacité des threads. Cela permet de nouveaux modèles de concurrence conviviaux comme le modèle acteur, ce qui représente un grand avantage pour faciliter la mise en œuvre et la maintenance des logiciels concurrents. Il existe encore quelques limitations mineures à mesure que cette fonctionnalité se généralise, comme des temps de démarrage plus lents pour les nouveaux interpréteurs, donc ne vous attendez pas à ce qu'elle soit parfaite pour l'instant.
Le nouveau paquet de compression est arrivé, et il apporte un module dédié pour le format Zstandard, compression.zstd. Zstandard est connu pour être un format de compression largement adopté, très efficace et rapide. Il utilise une API similaire aux modules existants lzma et bz2, donc son intégration devrait être facile.
Le débogage du code asynchrone peut être un casse-tête, donc Python 3.14 ajoute de nouveaux outils en ligne de commande pour l'introspection d'asyncio. Vous pouvez désormais inspecter les processus en cours avec python -m asyncio ps PID pour obtenir une liste plate des tâches, ou utiliser pstree pour un arbre d'appels asynchrone visuel. Cela est très utile pour déterminer où votre programme est bloqué et comment vos coroutines sont enchaînées.
Vous pouvez télécharger Python depuis son site web ou GitHub
Source : Python