Najinteresantnije novosti:
- Izraz za dodeljivanje:
Novi operator := omogućava dodeljivanje vrednosti promenljivama unutar izraza. Na primer:
if (n := len(a)) > 10:
print(f"Lista je predugačka ({n} elemenata, očekivano <= 10)") - Argumenti koji se mogu proslediti samo po poziciji:
Sada je moguće odrediti koji parametri funkcija se mogu proslediti putem sintakse imenovanih argumenata, a koji ne. Primer:
def f(a, b, \, c, d, *, e, f):
print(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) # greška, `b` ne može biti imenovani argument
f(10, 20, 30, 40, 50, f=60) # greška, `e` mora biti imenovani argumentOva promena daje programerima način da zaštite korisnike svojih API-ja od promena u imenima argumenata funkcija.
- Podrška za f-riječi = za samo-dokumentirajuće izjave i ispravljanje grešaka:
Dodana je sintaktička pojednostavljenja za debug/log poruke.
n = 42
print(f’Pozdrav svet {n=}.’)
# напечатает "Hello world n=42." - Ispravljeno ključna reč continue u finally bloku (ranije nije radila).
Ostalo:
- Može se eksplicitno odrediti put do keša bajtkoda umesto podrazumevanog __pycache__.
- Debug i Release gradnje koriste isti ABI.
Izvor: linux.org.ru
