Les novetats més interessants:
- Expressió de la tasca:
El nou operador := us permet assignar valors a variables dins d'expressions. Per exemple:
si (n := len(a)) > 10:
print(f"La llista és massa llarga ({n} elements, s'espera <= 10)") - Arguments només posicionals:
Ara podeu especificar quins paràmetres de funció es poden passar a través de la sintaxi de l'argument anomenada i quins no. Exemple:
def f(a, b, /, c, d, *, e, f):
imprimir (a, b, c, d, e, f)f(10, 20, 30, d=40, e=50, f=60) # D'acord
f(10, b=20, c=30, d=40, e=50, f=60) # error, `b` no pot ser un argument amb nom
f(10, 20, 30, 40, 50, f=60) # error, `e` ha de ser un argument amb nomAquest canvi ofereix als desenvolupadors una manera de protegir els usuaris de les seves API dels canvis en els noms dels arguments de les funcions.
- Suport cadenes f = per a expressions autodocumentades i depuració:
S'ha afegit sucre per simplificar els missatges de depuració/registre.
n = 42
print(f'Hola món {n=}.')
# imprimirà "Hola món n=42". - S'ha corregit la paraula clau continue al bloc finally (abans no funcionava).
Altres:
- Podeu especificar explícitament el camí a la memòria cau del bytecode en lloc del __pycache__ predeterminat.
- Les compilacions de depuració i llançament utilitzen el mateix ABI.
Font: linux.org.ru