Vue d'ensemble

Python 3.14, publie le 7 octobre 2025, introduit les t-strings, les annotations differees par defaut et poursuit le travail sur le free-threading et le compilateur JIT.

Fonctionnalites principales

T-strings (PEP 750)

Les t-strings (t"...") sont des chaines de gabarit qui capturent les interpolations sous forme structuree au lieu de les evaluer immediatement. Elles permettent un traitement sur et personnalise des donnees inserees.

python
from string.templatelib import Template

nom = "O'Brien"
template = t"SELECT * FROM users WHERE name = {nom}"

# template est un objet Template, pas une str
print(type(template))  # <class 'Template'>

# Acces aux parties statiques et interpolations
for part in template:
    print(part)

Annotations differees (PEP 649)

Les annotations de type sont desormais evaluees de maniere differee par defaut. Il n'est plus necessaire d'utiliser from __future__ import annotations. Les references en avant fonctionnent nativement.

python
# Plus besoin de from __future__ import annotations

class Arbre:
    def __init__(self, valeur: int, enfants: list[Arbre] | None = None):
        self.valeur = valeur
        self.enfants = enfants or []

# La reference en avant 'Arbre' fonctionne nativement
a = Arbre(1, [Arbre(2), Arbre(3)])

Free-threading et JIT

Le mode free-threaded (sans GIL) et le compilateur JIT experimentaux continuent de murir. Le free-threading permet un vrai parallelisme entre threads Python. Le JIT ameliore les performances des boucles intensives.

python
import sys

# Verifier le mode free-threaded
print(sys._is_gil_enabled())  # False si free-threaded

# Le JIT est active au build :
# ./configure --enable-experimental-jit

# Free-threading : vrai parallelisme
import threading

resultats = []

def calcul(n):
    resultats.append(sum(range(n)))

threads = [threading.Thread(target=calcul, args=(10**7,)) for _ in range(4)]
for t in threads: t.start()
for t in threads: t.join()

Sources