404CTF 2024 - Sea side channel
Ce challenge en 4 parties est l'un de ceux qui a été le moins flaggé sur...
Cette semaine c’est la sortie de Python 3.11 ! 😍
Mini-article pour vous présenter les 3 changements que je trouve les plus importants dans cette nouvelle version du langage ⤵️
Dans les versions précédentes, l’interpréteur ne donnait que le numéro de la ligne et le type d’erreur, ce qui pouvait être ambigu quand on faisait plusieurs calculs dans la même opération.
Python 3.11 donne l’emplacement exact du bug :
Un autre exemple ici, où on sait directement à quel sous-index imbriqué se trouve le bug.
En compétition, j’ai déjà perdu de très longues minutes à essayer de comprendre où se trouvait l’erreur sur du code similaire 😅
On peut maintenant raise plusieurs exceptions en même temps !
Python 3.11 introduit le type ExceptionGroup qui permet de grouper plusieurs erreurs en une seule, et différents mécanismes associés : nesting en sous-groupes, syntaxe except*, etc.
Nouvelle méthode introduite pour gérer les erreurs dans son code : la possibilité d’ajouter des annotations à une exception a posteriori, sans devoir instancier un nouvel objet.
Pour finir, une amélioration très attendue dans la communauté Python : une très forte augmentation des performances de CPython !
Pour rappel, CPython c’est l’interpréteur de Python le plus répandu, c’est ce qui est installé quand vous faites pip install python3
.
Pour mesurer la performance d’un langage, on utilise des benchmarks : une série d’algos standardisés, sur lesquels on mesure précisément le temps d’exécution.
Le benchmark pyperformance reprend du code utilisé dans le monde réel comme le chiffrement AES ou la synthèse d’images :
Sur les tests de pyperformance, CPython 3.11 est en moyenne 28% plus rapide que CPython 3.10, et jusqu’à 60% sur certains programmes !
C’est notamment lié à de petites optimisations au niveau des couches basses de l’interpréteur, sur des opérations utilisées très fréquemment :
Voici la fin de ce mini-article, j’espère que vous aurez l’occasion d’utiliser ces trois améliorations dans vos projets 😉
La version 3.11 apporte plusieurs centaines d’autres changements, retrouvez la liste complète ici : https://docs.python.org/3.11/wha…
contact@mathishammel.com
Copier
contact@mathishammel.com