Najbolj zanimive novosti:
- Izraz dodelitve:
Novi operator := omogoča dodeljevanje vrednosti spremenljivkam znotraj izrazov. Na primer:
če (n := len(a)) > 10:
print(f"Seznam je predolg ({n} elementov, pričakovano <= 10)") - Samo pozicijski argumenti:
Zdaj lahko določite, katere parametre funkcije je mogoče posredovati skozi sintakso imenovanih argumentov in katere ne. primer:
def f(a, b, /, c, d, *, e, f):
natisni (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) # napaka, `b` ne more biti imenovan argument
f(10, 20, 30, 40, 50, f=60) # napaka, `e` mora biti imenovani argumentTa sprememba omogoča razvijalcem, da zaščitijo uporabnike svojih API-jev pred spremembami imen argumentov funkcij.
- Podpora f-nizov = za samodokumentiranje izrazov in odpravljanje napak:
Dodan sladkor za poenostavitev sporočil za odpravljanje napak/beleženje.
n = 42
print(f'Pozdravljen svet {n=}.')
# bo natisnil "Hello world n=42." - Popravljena ključna beseda continue v bloku finally (prej ni delovala).
Drugo:
- Namesto privzetega __pycache__ lahko izrecno določite pot do predpomnilnika bajtne kode.
- Zgradbe Debug in Release uporabljajo isti ABI.
Vir: linux.org.ru