Mielenkiintoisimmat innovaatiot:
- Tehtävän ilmaus:
Uuden :=-operaattorin avulla voit määrittää arvoja lausekkeiden muuttujille. Esimerkiksi:
jos (n := len(a)) > 10:
print(f"Lista on liian pitkä ({n} elementtiä, odotettavissa <= 10)") - Vain sijaintiargumentit:
Voit nyt määrittää, mitkä funktioparametrit voidaan välittää nimetyn argumenttisyntaksin kautta ja mitkä ei. Esimerkki:
def f(a, b, /, c, d, *, e, f):
tulosta(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) # virhe, "b" ei voi olla nimetty argumentti
f(10, 20, 30, 40, 50, f=60) # virhe, "e" on nimetty argumenttiTämä muutos antaa kehittäjille tavan suojata API-käyttäjiensä funktion argumenttien nimien muutoksilta.
- Tuki f-strings = itsedokumentointiin ja virheenkorjaukseen:
Lisätty sokeria yksinkertaistamaan virheenkorjausta/viestien kirjaamista.
n = 42
print(f'Hei maailma {n=}.')
# tulostaa "Hello world n=42." - Jatka-avainsana korjattu viimeiseen lohkoon (se ei toiminut aiemmin).
Muut:
- Voit määrittää nimenomaisesti polun tavukoodivälimuistiin oletusarvon __pycache__ sijaan.
- Debug and Release -koontiversiot käyttävät samaa ABI:ta.
Lähde: linux.org.ru