Python 3.7

Nuove funzionalità:

Funzionalità

Stato

PEP 538

Conversione del locale C legacy in un locale basato su UTF-8

PEP 539

Una nuova API C per la memorizzazione thread-local in CPython

PEP 540

Modalità UTF-8

PEP 552

pyc deterministici

PEP 553

breakpoint() integrato

PEP 557

Data Class

PEP 560

Supporto di base per il modulo typing e i tipi generici

PEP 562

__getattr__ e __dir__ a livello di modulo

Parziale

PEP 563

Valutazione posticipata delle annotazioni

PEP 564

Funzioni temporali con risoluzione al nanosecondo

Parziale [1]

PEP 565

Visualizzazione di DeprecationWarning in __main__

PEP 567

Variabili di contesto

Altre modifiche al linguaggio:

async e await sono ora parole chiave riservate

Completo

Gli oggetti dict devono preservare l’ordine di inserimento

È ora possibile passare più di 255 argomenti a una funzione; una funzione può ora avere più di 255 parametri

bytes.fromhex() e bytearray.fromhex() ignorano ora tutti gli spazi bianchi ASCII, non solo gli spazi

str, bytes e bytearray hanno acquisito il supporto per il nuovo metodo isascii(), che può essere usato per verificare se una stringa o dei byte contengono solo caratteri ASCII

ImportError mostra ora il nome del modulo e il percorso __file__ del modulo quando from ... import ... fallisce

Gli import circolari che coinvolgono import assoluti con l’associazione di un sottomodulo a un nome sono ora supportati

object.__format__(x, '') equivale ora a str(x) anziché a format(str(self), '')

Per supportare meglio la creazione dinamica degli stack trace, types.TracebackType può ora essere istanziato dal codice Python e l’attributo tb_next dei traceback è ora scrivibile

Quando si usa l’opzione -m, sys.path[0] viene ora espanso immediatamente al percorso completo della directory di partenza, anziché essere lasciato come directory vuota (il che consente import dalla directory di lavoro corrente nel momento in cui si verifica un import)

La nuova opzione -X importtime o la variabile d’ambiente PYTHONPROFILEIMPORTTIME può essere usata per mostrare i tempi di ciascun import di modulo

Modifiche ai moduli integrati:

asyncio

Troppe per essere elencate

gc

Le nuove funzionalità includono gc.freeze(), gc.unfreeze(), gc-get_freeze_count

math

Aggiunta math.remainder() per implementare il resto in stile IEEE 754

re

Una serie di miglioramenti, tra cui un migliore supporto per la suddivisione su stringhe vuote e il supporto della copia per le espressioni compilate e gli oggetti match

sys

Aggiunta sys.breakpointhook(). Aggiunte sys.get(/set)_coroutine_origin_tracking_depth()

time

Per lo più aggiornamenti per supportare la risoluzione al nanosecondo nella PEP564, vedi sopra

Note