De mest interessante nyheder:
- Tildelende udtryk:
Den nye operator := gør det muligt at tildele værdier til variabler inden for udtryk. For eksempel:
if (n := len(a)) > 10:
print(f"Listen er for lang ({n} elementer, forventet <= 10)") - Positionsspecifikke argumenter:
Det er nu muligt at angive, hvilke funktionsparametre der kan overføres gennem syntaksen for navngivne argumenter, og hvilke der ikke kan. Eksempel:
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) # fejl, `b` kan ikke være et navngivet argument
f(10, 20, 30, 40, 50, f=60) # fejl, `e` skal være et navngivet argumentDenne ændring giver udviklere en måde at beskytte deres API-brugere mod ændringer i funktionsargumenternes navne.
- Support for f-strenge = til selv-dokumenterende udtryk og debugging:
Tilføjet syntaks for at forenkle debugging/logningsbeskeder.
n = 42
print(f'Hallo verden {n=}.')
# напечатает "Hello world n=42." - Det er nu rettes nøgleordet continue i finally-blokeringen (det virkede ikke før).
Andet:
- Man kan eksplicit angive stien til bytecode-cachen i stedet for den standard __pycache__.
- Debug- og Release-builds bruger den samme ABI.
Kilde: linux.org.ru
