De meest interessante innovaties:
- Toewijzingsuitdrukking:
Met de nieuwe operator := kunt u waarden toewijzen aan variabelen binnen expressies. Bijvoorbeeld:
als (n := len(a)) > 10:
print(f"Lijst is te lang ({n} elementen, verwacht <= 10)") - Alleen-positionele argumenten:
U kunt nu opgeven welke functieparameters via de syntaxis van benoemde argumenten kunnen worden doorgegeven en welke niet. Voorbeeld:
def f(a, b, /, c, d, *, e, f):
afdrukken(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) # fout, `b` kan geen benoemd argument zijn
f(10, 20, 30, 40, 50, f=60) # fout, `e` moet een benoemd argument zijnDeze wijziging biedt ontwikkelaars een manier om gebruikers van hun API's te beschermen tegen wijzigingen in de namen van functieargumenten.
- Ondersteuning f-strings = voor zelfdocumenterende expressies en foutopsporing:
Suiker toegevoegd om het debuggen/loggen van berichten te vereenvoudigen.
n = 42
print(f'Hallo wereld {n=}.')
# zal "Hallo wereld n=42" afdrukken. - Het trefwoord 'continue' in het 'final'-blok is opgelost (eerder werkte dit niet).
Ander:
- U kunt expliciet het pad naar de bytecode-cache opgeven in plaats van de standaard __pycache__.
- Debug- en Release-builds gebruiken dezelfde ABI.
Bron: linux.org.ru