Python 3.5¶
Mai jos este o listă a PEP-urilor finalizate/acceptate pentru Python 3.5, grupate în funcție de impactul lor asupra MicroPython.
Extensii ale sintaxei |
Stare |
|
Generalizări suplimentare ale despachetării |
Parțial |
|
Un nou operator de înmulțire matricială |
Complet |
|
Corutine cu sintaxa |
Complet |
|
Extensii și modificări ale mediului de execuție |
||
Formatare cu % pentru șiruri binare |
Complet |
|
Reîncercarea apelurilor de sistem care eșuează cu |
Complet |
|
Modificarea gestionării |
Complet |
|
Modificări ale bibliotecii standard |
||
|
||
|
Complet |
|
Modificări diverse |
||
Suport îmbunătățit pentru aplicații zip Python |
||
Conștientizarea de către Python Launcher a mediilor virtuale |
Nu este relevant |
|
Sugestii de tip (doar orientative) |
Complet [1] |
|
Eliminarea fișierelor PYO |
Nu este relevant |
|
Reproiectarea încărcării modulelor de extensie |
||
Alte modificări ale limbajului:
Au fost adăugate gestionarele de erori namereplace. Gestionarele de erori backslashreplace funcționează acum cu decodificarea și traducerea. |
|
Șirurile de documentație (docstrings) ale proprietăților pot fi acum scrise. Acest lucru este util în special pentru șirurile de documentație ale collections.namedtuple() |
|
Importurile circulare care implică importuri relative sunt acum suportate. |
Module noi:
Modificări ale modulelor încorporate:
Clasa OrderedDict este acum implementată în C, ceea ce o face de 4 până la 100 de ori mai rapidă. |
|
Vizualizările OrderedDict.items(), OrderedDict.keys(), OrderedDict.values() suportă acum iterarea cu reversed(). |
|
The deque class now defines index(), insert(), and copy(), and supports the + and * operators. |
|
Șirurile de documentație produse de namedtuple() pot fi acum actualizate. |
|
Clasa UserString implementează acum metodele __getnewargs__(), __rmod__(), casefold(), format_map(), isprintable() și maketrans() pentru a corespunde metodelor echivalente ale str. |
|
Compararea elementelor în merge() poate fi acum personalizată prin transmiterea unei funcții cheie într-un nou argument-cheie opțional key, iar un nou argument-cheie opțional reverse poate fi folosit pentru a inversa compararea elementelor |
|
O nouă metodă BufferedIOBase.readinto1(), care folosește cel mult un apel la metodele RawIOBase.read() sau RawIOBase.readinto() ale fluxului brut subiacent |
|
Decodificatorul JSON generează acum JSONDecodeError în loc de ValueError pentru a oferi informații de context mai bune despre eroare. |
|
Au fost adăugate două noi constante la modulul math: inf și nan. |
Complet |
O nouă funcție isclose() oferă o modalitate de a testa egalitatea aproximativă. |
|
A fost adăugată o nouă funcție gcd(). Funcția fractions.gcd() este acum depreciată. |
|
A fost adăugată noua funcție scandir(), care returnează un iterator de obiecte DirEntry. |
|
Funcția urandom() folosește acum apelul de sistem getrandom() pe Linux 3.17 sau mai nou și getentropy() pe OpenBSD 5.6 și mai nou, eliminând necesitatea de a folosi /dev/urandom și evitând eșecurile cauzate de potențiala epuizare a descriptorilor de fișier. |
|
Noile funcții get_blocking() și set_blocking() permit obținerea și setarea modului de blocare al unui descriptor de fișier (O_NONBLOCK.) |
|
Există o nouă funcție os.path.commonpath() care returnează cea mai lungă sub-cale comună a fiecărui nume de cale transmis |
|
Referințele și referințele condiționate către grupuri cu lungime fixă sunt acum permise în aserțiunile lookbehind |
|
Numărul de grupuri de captură din expresiile regulate nu mai este limitat la 100. |
|
Funcțiile sub() și subn() înlocuiesc acum grupurile nepotrivite cu șiruri goale în loc să genereze o excepție. |
|
Excepțiile re.error au noi atribute, msg, pattern, pos, lineno și colno, care oferă informații de context mai bune despre eroare |
|
Funcțiile cu timeout-uri folosesc acum un ceas monoton, în loc de un ceas de sistem. |
|
O nouă metodă socket.sendfile() permite trimiterea unui fișier printr-un socket folosind funcția performantă os.sendfile() pe UNIX, ceea ce face ca încărcările să fie de 2 până la 3 ori mai rapide decât atunci când se folosește simplu socket.send() |
|
Metoda socket.sendall() nu mai resetează timeout-ul socket-ului de fiecare dată când sunt primiți sau trimiși octeți. Timeout-ul socket-ului reprezintă acum durata totală maximă pentru trimiterea tuturor datelor. |
|
Argumentul backlog al metodei socket.listen() este acum opțional. În mod implicit, este setat la SOMAXCONN sau la 128, oricare dintre acestea este mai mic. |
Complet |
Suport pentru Memory BIO |
|
Suport pentru Application-Layer Protocol Negotiation |
|
Există o nouă metodă SSLSocket.version() pentru a interoga versiunea reală de protocol în uz. |
|
Clasa SSLSocket implementează acum o metodă SSLSocket.sendfile(). |
|
Metoda SSLSocket.send() generează acum fie excepția ssl.SSLWantReadError, fie ssl.SSLWantWriteError pe un socket neblocant dacă operația ar bloca. Anterior, ar fi returnat 0. |
|
Funcția cert_time_to_seconds() interpretează acum timpul de intrare ca UTC, nu ca timp local, conform RFC 5280. În plus, valoarea returnată este întotdeauna un int. |
|
Noile metode SSLObject.shared_ciphers() și SSLSocket.shared_ciphers() returnează lista cifrurilor trimise de client în timpul negocierii. |
|
Metodele SSLSocket.do_handshake(), SSLSocket.read(), SSLSocket.shutdown() și SSLSocket.write() ale clasei SSLSocket nu mai resetează timeout-ul socket-ului de fiecare dată când sunt primiți sau trimiși octeți. |
|
Funcția match_hostname() suportă acum potrivirea adreselor IP. |
|
O nouă funcție set_coroutine_wrapper() permite setarea unui hook global care va fi apelat ori de câte ori un obiect corutină este creat de o funcție async def. O funcție corespunzătoare get_coroutine_wrapper() poate fi folosită pentru a obține un wrapper setat curent. |
|
O nouă funcție is_finalizing() poate fi folosită pentru a verifica dacă interpretorul Python se închide. |
|
Funcția monotonic() este acum disponibilă întotdeauna |
|
Note