Python 3.5¶
Di seguito e” riportato un elenco delle PEP finalizzate/accettate per Python 3.5 raggruppate in base al loro impatto su MicroPython.
Estensioni alla sintassi |
Stato |
|
Generalizzazioni aggiuntive dell’unpacking |
Parziale |
|
Un nuovo operatore di moltiplicazione tra matrici |
Completo |
|
Coroutine con sintassi |
Completo |
|
Estensioni e modifiche al runtime |
||
Formattazione con % per le stringhe binarie |
Completo |
|
Ritentativo delle chiamate di sistema che falliscono con |
Completo |
|
Modifica della gestione di |
Completo |
|
Modifiche alla libreria standard |
||
|
||
|
Completo |
|
Modifiche varie |
||
Migliorato il supporto alle applicazioni zip di Python |
||
Rendere il Python Launcher consapevole degli ambienti virtuali |
Non rilevante |
|
Type hint (solo indicativi) |
Completo [1] |
|
Eliminazione dei file PYO |
Non rilevante |
|
Riprogettazione del caricamento dei moduli di estensione |
||
Altre modifiche al linguaggio:
Aggiunti gli error handler namereplace. Gli error handler backslashreplace ora funzionano con la decodifica e la traduzione. |
|
I docstring delle property sono ora scrivibili. Cio” e” particolarmente utile per i docstring di collections.namedtuple() |
|
Le importazioni circolari che coinvolgono importazioni relative sono ora supportate. |
Nuovi moduli:
Modifiche ai moduli builtin:
La classe OrderedDict e” ora implementata in C, il che la rende da 4 a 100 volte piu” veloce. |
|
Le viste OrderedDict.items() , OrderedDict.keys() , OrderedDict.values() ora supportano l’iterazione con reversed(). |
|
The deque class now defines index(), insert(), and copy(), and supports the + and * operators. |
|
I docstring prodotti da namedtuple() possono ora essere aggiornati. |
|
La classe UserString ora implementa i metodi __getnewargs__(), __rmod__(), casefold(), format_map(), isprintable() e maketrans() per corrispondere ai metodi corrispondenti di str. |
|
Il confronto degli elementi in merge() puo” ora essere personalizzato passando una funzione key in un nuovo argomento keyword opzionale key, e un nuovo argomento keyword opzionale reverse puo” essere usato per invertire il confronto degli elementi |
|
Un nuovo metodo BufferedIOBase.readinto1(), che utilizza al massimo una chiamata ai metodi RawIOBase.read() o RawIOBase.readinto() del raw stream sottostante |
|
Il decoder JSON ora solleva JSONDecodeError invece di ValueError per fornire migliori informazioni di contesto sull’errore. |
|
Due nuove costanti sono state aggiunte al modulo math: inf e nan. |
Completo |
Una nuova funzione isclose() fornisce un modo per testare l’uguaglianza approssimata. |
|
E” stata aggiunta una nuova funzione gcd(). La funzione fractions.gcd() e” ora deprecata. |
|
E” stata aggiunta la nuova funzione scandir() che restituisce un iteratore di oggetti DirEntry. |
|
La funzione urandom() ora utilizza la syscall getrandom() su Linux 3.17 o successivo, e getentropy() su OpenBSD 5.6 e successivo, eliminando la necessita” di usare /dev/urandom ed evitando errori dovuti al potenziale esaurimento dei descrittori di file. |
|
Le nuove funzioni get_blocking() e set_blocking() consentono di ottenere e impostare la modalita” bloccante di un descrittore di file (O_NONBLOCK.) |
|
C’e” una nuova funzione os.path.commonpath() che restituisce il sotto-percorso comune piu” lungo di ciascun pathname passato |
|
I riferimenti e i riferimenti condizionali a gruppi di lunghezza fissa sono ora consentiti nelle asserzioni lookbehind |
|
Il numero di gruppi di cattura nelle espressioni regolari non e” piu” limitato a 100. |
|
Le funzioni sub() e subn() ora sostituiscono i gruppi non corrispondenti con stringhe vuote invece di sollevare un’eccezione. |
|
Le eccezioni re.error hanno nuovi attributi, msg, pattern, pos, lineno e colno, che forniscono migliori informazioni di contesto sull’errore |
|
Le funzioni con timeout ora usano un clock monotono, invece di un clock di sistema. |
|
Un nuovo metodo socket.sendfile() consente di inviare un file su un socket utilizzando la funzione ad alte prestazioni os.sendfile() su UNIX, con il risultato di upload da 2 a 3 volte piu” veloci rispetto all’uso del semplice socket.send() |
|
Il metodo socket.sendall() non azzera piu” il timeout del socket ogni volta che vengono ricevuti o inviati byte. Il timeout del socket e” ora la durata totale massima per inviare tutti i dati. |
|
L’argomento backlog del metodo socket.listen() e” ora opzionale. Per impostazione predefinita e” impostato a SOMAXCONN o a 128, a seconda di quale sia il minore. |
Completo |
Supporto per Memory BIO |
|
Supporto per Application-Layer Protocol Negotiation |
|
C’e” un nuovo metodo SSLSocket.version() per interrogare la versione del protocollo effettivamente in uso. |
|
La classe SSLSocket ora implementa un metodo SSLSocket.sendfile(). |
|
Il metodo SSLSocket.send() ora solleva l’eccezione ssl.SSLWantReadError o ssl.SSLWantWriteError su un socket non bloccante se l’operazione si bloccherebbe. In precedenza, restituiva 0. |
|
La funzione cert_time_to_seconds() ora interpreta il tempo in input come UTC e non come ora locale, secondo l’RFC 5280. Inoltre, il valore di ritorno e” sempre un int. |
|
I nuovi metodi SSLObject.shared_ciphers() e SSLSocket.shared_ciphers() restituiscono la lista delle cipher inviate dal client durante l’handshake. |
|
I metodi SSLSocket.do_handshake(), SSLSocket.read(), SSLSocket.shutdown() e SSLSocket.write() della classe SSLSocket non azzerano piu” il timeout del socket ogni volta che vengono ricevuti o inviati byte. |
|
La funzione match_hostname() ora supporta la corrispondenza degli indirizzi IP. |
|
Una nuova funzione set_coroutine_wrapper() consente di impostare un hook globale che verra” chiamato ogni volta che un oggetto coroutine viene creato da una funzione async def. Una corrispondente get_coroutine_wrapper() puo” essere usata per ottenere il wrapper attualmente impostato. |
|
Una nuova funzione is_finalizing() puo” essere usata per verificare se l’interprete Python si sta arrestando. |
|
La funzione monotonic() e” ora sempre disponibile |
|
Note