Najzaujímavejšie inovácie:
- Výraz zadania:
Nový operátor := vám umožňuje priradiť hodnoty premenným vo výrazoch. Napríklad:
if (n := len(a)) > 10:
print(f"Zoznam je príliš dlhý ({n} prvkov, očakáva sa <= 10)") - Iba pozičné argumenty:
Teraz môžete určiť, ktoré parametre funkcie možno odovzdať cez pomenovanú syntax argumentov a ktoré nie. Príklad:
def f(a, b, /, c, d, *, e, f):
tlačiť (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) # chyba, `b` nemôže byť pomenovaný argument
f(10, 20, 30, 40, 50, f=60) # chyba, `e` musí byť pomenovaný argumentTáto zmena poskytuje vývojárom spôsob, ako chrániť používateľov ich rozhraní API pred zmenami v názvoch argumentov funkcií.
- Podpora f-strings = pre samodokumentovanie výrazov a ladenie:
Pridaný cukor na zjednodušenie ladenia/protokolovania správ.
n = 42
print(f'Ahoj svet {n=}.')
# vypíše "Ahoj svet n=42." - Opravené kľúčové slovo continue v bloku konečne (predtým to nefungovalo).
Ostatné:
- Môžete explicitne zadať cestu k vyrovnávacej pamäti bajtového kódu namiesto predvolenej __pycache__.
- Zostavy ladenia a vydania používajú rovnaké rozhranie ABI.
Zdroj: linux.org.ru