Python 3.12 • Le registre

  • Français


  • Python 3.12, la dernière version stable du langage de programmation Python, a été publiée lundi, offrant aux développeurs une poignée de nouvelles fonctionnalités et la suppression de certaines fonctionnalités inutiles.

    La révision arrive presque un an après la précédente version stable, Python 3.11.

    Python a récemment été classé comme le langage de programmation le plus populaire, le deuxième ou le troisième, selon la personne à qui vous le demandez. Quoi qu’il en soit, il s’agit de la lingua franca de la science des données et de l’IA, et d’un point d’entrée commun à la programmation en milieu universitaire.

    La version 3.12 inclut des f-strings plus accommodantes, comme cela a été proposé dans la Python Enhancement Proposal (PEP) 701.

    Une chaîne f, ou chaîne littérale formatée, est une chaîne littérale préfixée par un « f » – majuscule ou minuscule – de sorte qu’elle puisse contenir des champs de remplacement entre accolades qui sont évalués au moment de l’exécution. La plupart des langages de programmation ont quelque chose de ce genre et avec PEP 701, les composants d’expression dans une chaîne f peuvent être n’importe quelle expression Python valide. Ils peuvent désormais gérer les expressions multilignes, les commentaires, les barres obliques inverses et les séquences d’échappement Unicode.

    PEP 695 offre une syntaxe de paramètre de type améliorée qui rend les variables de type plus faciles à comprendre. Il permet aux développeurs de déclarer des paramètres de type “à un endroit naturel dans une instruction de déclaration de classe, de fonction ou d’alias de type”.

    Python implémente un Global Interpreter Lock, ou GIL, qui empêche plusieurs threads Python de s’exécuter en même temps. Le GIL devrait devenir facultatif dans la prochaine version de Python 3.13 car il entrave la concurrence – c’est un goulot d’étranglement de sécurité qui bloque les autres threads.

    Dans cette version, Python a introduit un GIL par interprète avec PEP 684. Il permet la création de sous-interprètes, ce qui facilite le travail avec plusieurs cœurs de processeur. Dans un premier temps, cela doit être fait avec une API C, même si une API Python est prévue pour la version 3.13. L’un des cas d’utilisation potentiels consisterait à exécuter simultanément des sous-interprètes et à accéder à l’état partagé dans une bibliothèque C++ thread-safe.

    La dernière mise à jour de Python prend également en charge PEP 669, une nouvelle API pour les profileurs, les débogueurs et autres outils de surveillance. Le PEP 669 est censé avoir « faible impact », de sorte qu’il peut être implémenté dans le code sans surcharge significative : les débogueurs et les profileurs sont connus pour ralentir le code d’un ordre de grandeur.

    “Nous avons suivi et envisageons d’incorporer certaines des modifications apportées dans le cadre du PEP 669 pour améliorer les performances de la surveillance”, a déclaré Emery Berger, professeur d’informatique à l’Université du Massachusetts à Amherst. Le registre. Berger a également noté que SlipCover – un outil de couverture de code Python presque nul qu’il a développé avec l’étudiant diplômé Juan Altmayer Pizzorno – a servi d’inspiration pour le PEP 669.

    Berger, Pizzorno et un autre étudiant diplômé, Sam Stern, ont également développé un profileur Python appelé Scalene. Et Berger a déclaré que lui et ses étudiants étudiaient comment ajouter certaines des modifications de Python 3.12 à leurs projets existants.

    “Nous prévoyons d’utiliser [PEP 669] pour réduire davantage la surcharge du suivi au niveau ligne de l’utilisation de la mémoire par Scalene, en particulier pour certains cas pathologiques”, a déclaré Berger. “Pas de surprise, étant donné que SlipCover a été utilisé comme justification du PEP, nous envisageons de l’utiliser pour rationaliser et à l’avenir- preuve de la mise en œuvre de SlipCover.”

    D’autres améliorations de Python 3.12 incluent le PEP 688, qui rend le protocole de tampon (un moyen d’accéder à la mémoire sous-jacente d’un objet) accessible via une API Python au lieu d’une simple API C, et le PEP 709, qui ajoute une optimisation du compilateur appelée inlining à la liste. , dictionnaire et compréhensions d’ensembles pour des performances améliorées.

    Il existe également quelques améliorations des indications de type, pour ceux qui préfèrent être explicites sur les types de données Python (PEP 692 et PEP 698). Et les messages d’erreur ont été améliorés.

    Enfin, au-delà des diverses améliorations du module, un grand nombre de fonctionnalités plus anciennes ont été supprimées après plusieurs années de purgatoire de dépréciation. Tous les détails sont disponibles dans la documentation en ligne. ®

    Source

    L'équipe de Comparaland

    L'équipe rédactionnnelle du site

    Pour contacter personnellement le taulier :

    Laisser un commentaire

    Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *