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(). | |
La classe deque ora definisce index(), insert() e copy(), e supporta gli operatori + e *. | |
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