Najzanimljivije inovacije:
- Izraz dodjele:
Novi := operator omogućuje vam dodjeljivanje vrijednosti varijablama unutar izraza. Na primjer:
ako je (n := len(a)) > 10:
print(f"Popis je predug ({n} elemenata, očekivano <= 10)") - Samo pozicijski argumenti:
Sada možete odrediti koji se parametri funkcije mogu proslijediti kroz sintaksu imenovanog argumenta, a koji ne. Primjer:
def f(a, b, /, c, d, *, e, f):
ispis(a, b, c, d, e, f)f(10, 20, 30, d=40, e=50, f=60) # OK
f(10, b=20, c=30, d=40, e=50, f=60) # pogreška, `b` ne može biti imenovani argument
f(10, 20, 30, 40, 50, f=60) # pogreška, `e` mora biti imenovani argumentOva promjena daje programerima način da zaštite korisnike svojih API-ja od promjena u nazivima argumenata funkcija.
- Podrška f-strings = za samodokumentiranje izraza i otklanjanje pogrešaka:
Dodan šećer za pojednostavljenje ispravljanja pogrešaka/bilježenja poruka.
n = 42
print(f'Zdravo svijete {n=}.')
# će ispisati "Hello world n=42." - Popravljena ključna riječ continue u finally bloku (prije nije radila).
Ostalo:
- Možete eksplicitno navesti put do predmemorije bajt koda umjesto zadanog __pycache__.
- Debug i Release međuverzije koriste isti ABI.
Izvor: linux.org.ru