Versione Python 3.8

Le novità più interessanti:

  • Espressione del compito:

    Il nuovo := operatore consente di assegnare valori alle variabili all'interno delle espressioni. Per esempio:
    se (n := len(a)) > 10:
    print(f"L'elenco è troppo lungo ({n} elementi, previsti <= 10)")

  • Argomenti solo posizionali:

    È ora possibile specificare quali parametri della funzione possono essere passati attraverso la sintassi dell'argomento denominato e quali no. Esempio:
    def f(a, b, /, c, d, *, e, f):
    stampa(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) # errore, `b` non può essere un argomento con nome
    f(10, 20, 30, 40, 50, f=60) # errore, `e` deve essere un argomento con nome

    Questa modifica offre agli sviluppatori un modo per proteggere gli utenti delle loro API dalle modifiche ai nomi degli argomenti delle funzioni.

  • Supporto f-strings = per espressioni autodocumentanti e debug:

    Aggiunto zucchero per semplificare i messaggi di debug/logging.
    n = 42
    print(f'Ciao mondo {n=}.')
    # stamperà "Ciao mondo n=42."

  • Corretta la parola chiave continue nel blocco finalmente (prima non funzionava).

Altro:

  • È possibile specificare esplicitamente il percorso della cache del bytecode anziché quello predefinito __pycache__.
  • Le build di debug e di rilascio utilizzano la stessa ABI.

Fonte: linux.org.ru

Aggiungi un commento