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(). | |
Clasa deque definește acum index(), insert() și copy() și suportă operatorii + și *. | |
Ș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