Ajouter un commentaire

Python 3.11 bêta

Par:
fredericmazue

mar, 28/06/2022 - 13:57

L'équipe de Python vient d'annoncer la disponibilité Python 3.11 bêta, la version définitive étant attendue pour octobre 2022. Selon l'équipe, CPython 3.11 est en moyenne 25% plus rapide que CPython 3.10. Selon le travail que doit effectuer un programme Python 3.11, le gain de performances s'échelonne de 10 à 60%, précise l'équipe.

Même si la note de version se contente d'évoquer un runtime plus rapide, il semble que ce gain de performances soit du au nouvel interpréteur adaptatif spécialisé qui arrive avec cette mouture du langage.

Comme promis, Python 3.11 apporte de meilleures traces d'erreur. Ainsi l'interpréteur pointe désormais vers l'expression exacte qui a causé l'erreur au lieu de simplement la ligne. Par exemple, nous pouvions avoir:

Traceback (most recent call last):
  File "distance.py", line 11, in <module>
    print(manhattan_distance(p1, p2))
          ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "distance.py", line 6, in manhattan_distance
    return abs(point_1.x - point_2.x) + abs(point_1.y - point_2.y)
                           ^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'x'

Les versions précédentes de l'interpréteur pointaient uniquement sur la ligne, ce qui rendait ambigu quel objet était None dans l'exemple ci-dessus.

Python 3.11 implémente aussi plusieurs améliorations au niveau de la syntaxe et du typage :

  • PEP 654: Groupes d'exception et except*
  • PEP 646: Génériques variadiques.
  • PEP 655: Marquage des éléments TypedDict individuels comme requis ou potentiellement manquants
  • PEP 673: type Self.
  • PEP 675: Type de chaîne littérale arbitraire

Filtered HTML

Plain text

CAPTCHA
Cette question permet de vérifier que vous n'êtes pas un robot spammeur :-)
 EEEE      J  TTTTTT  EEEE  Y   Y 
E J TT E Y Y
EEE J TT EEE Y
E J J TT E Y
EEEE JJJ TT EEEE Y