Nejzajímavější inovace:
- Výraz zadání:
Nový operátor := umožňuje přiřadit hodnoty proměnným ve výrazech. Například:
if (n := len(a)) > 10:
print(f"Seznam je příliš dlouhý ({n} prvků, očekává se <= 10)") - Pouze poziční argumenty:
Nyní můžete určit, které parametry funkce lze předat syntaxí pojmenovaných argumentů a které nikoli. Příklad:
def f(a, b, /, c, d, *, e, f):
tisknout (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 být pojmenovaný argument
f(10, 20, 30, 40, 50, f=60) # chyba, `e` musí být pojmenovaný argumentTato změna poskytuje vývojářům způsob, jak chránit uživatele jejich rozhraní API před změnami názvů argumentů funkcí.
- Podpora f-strings = pro samodokumentování výrazů a ladění:
Přidán cukr pro zjednodušení ladění/protokolování zpráv.
n = 42
print(f'Ahoj světe {n=}.')
# vytiskne "Ahoj světe n=42." - Opraveno klíčové slovo continue v bloku nakonec (dříve nefungovalo).
Ostatní:
- Místo výchozí __pycache__ můžete explicitně zadat cestu k mezipaměti bajtového kódu.
- Sestavení ladění a vydání používají stejné rozhraní ABI.
Zdroj: linux.org.ru