Python 3.5¶
Ispod je popis finaliziranih/prihvaćenih PEP-ova za Python 3.5 grupiranih prema njihovom utjecaju na MicroPython.
Proširenja sintakse |
Status |
|
Dodatne generalizacije raspakiravanja |
Djelomično |
|
Novi operator za množenje matrica |
Potpuno |
|
Korutine sa sintaksom |
Potpuno |
|
Proširenja i promjene izvođenja (runtime) |
||
Oblikovanje s % za binarne nizove |
Potpuno |
|
Ponovno pokušavanje sistemskih poziva koji ne uspiju s |
Potpuno |
|
Promjena rukovanja |
Potpuno |
|
Promjene standardne biblioteke |
||
|
||
|
Potpuno |
|
Razne promjene |
||
Poboljšana podrška za Python zip aplikacije |
||
Upoznavanje Python Launchera s virtualnim okruženjima |
Nije relevantno |
|
Naznake tipova (samo savjetodavno) |
Potpuno [1] |
|
Uklanjanje PYO datoteka |
Nije relevantno |
|
Redizajn učitavanja modula proširenja |
||
Ostale promjene jezika:
Dodani su rukovatelji pogreškama namereplace. Rukovatelji pogreškama backslashreplace sada rade s dekodiranjem i prevođenjem. |
|
Docstringovi svojstava (property) sada su zapisivi. To je osobito korisno za docstringove iz collections.namedtuple() |
|
Sada su podržani cirkularni uvozi koji uključuju relativne uvoze. |
Novi moduli:
Promjene u ugrađenim modulima:
Klasa OrderedDict sada je implementirana u jeziku C, što je čini 4 do 100 puta bržom. |
|
Pogledi OrderedDict.items() , OrderedDict.keys() , OrderedDict.values() sada podržavaju iteraciju s reversed(). |
|
The deque class now defines index(), insert(), and copy(), and supports the + and * operators. |
|
Docstringovi koje proizvodi namedtuple() sada se mogu ažurirati. |
|
Klasa UserString sada implementira metode __getnewargs__(), __rmod__(), casefold(), format_map(), isprintable() i maketrans() kako bi odgovarale odgovarajućim metodama klase str. |
|
Usporedba elemenata u merge() sada se može prilagoditi prosljeđivanjem ključne funkcije u novom neobaveznom ključnom argumentu key, a novi neobavezni ključni argument reverse može se koristiti za obrnutu usporedbu elemenata |
|
Nova metoda BufferedIOBase.readinto1(), koja koristi najviše jedan poziv metoda RawIOBase.read() ili RawIOBase.readinto() osnovnog sirovog toka |
|
JSON dekoder sada podiže JSONDecodeError umjesto ValueError kako bi pružio bolje kontekstualne informacije o pogrešci. |
|
Dvije nove konstante dodane su modulu math: inf i nan. |
Potpuno |
Nova funkcija isclose() pruža način za testiranje približne jednakosti. |
|
Dodana je nova funkcija gcd(). Funkcija fractions.gcd() sada je zastarjela. |
|
Dodana je nova funkcija scandir() koja vraća iterator objekata DirEntry. |
|
Funkcija urandom() sada koristi sistemski poziv getrandom() na Linuxu 3.17 ili novijem, te getentropy() na OpenBSD-u 5.6 i novijem, čime se uklanja potreba za korištenjem /dev/urandom i izbjegavaju neuspjesi zbog potencijalnog iscrpljivanja opisnika datoteka. |
|
Nove funkcije get_blocking() i set_blocking() omogućuju dohvaćanje i postavljanje blokirajućeg načina rada opisnika datoteke (O_NONBLOCK.) |
|
Postoji nova funkcija os.path.commonpath() koja vraća najdulji zajednički podput svake proslijeđene putanje datoteke |
|
Reference i uvjetne reference na grupe fiksne duljine sada su dopuštene u lookbehind tvrdnjama |
|
Broj grupa za hvatanje u regularnim izrazima više nije ograničen na 100. |
|
Funkcije sub() i subn() sada zamjenjuju nepodudarene grupe praznim nizovima umjesto podizanja iznimke. |
|
Iznimke re.error imaju nove atribute: msg, pattern, pos, lineno i colno, koji pružaju bolje kontekstualne informacije o pogrešci |
|
Funkcije s vremenskim ograničenjima (timeout) sada koriste monotoni sat umjesto sistemskog sata. |
|
Nova metoda socket.sendfile() omogućuje slanje datoteke preko utičnice korištenjem visokoučinkovite funkcije os.sendfile() na UNIX-u, što rezultira prijenosima 2 do 3 puta bržima nego pri korištenju običnog socket.send() |
|
Metoda socket.sendall() više ne poništava vremensko ograničenje utičnice svaki put kada se bajtovi prime ili pošalju. Vremensko ograničenje utičnice sada je maksimalno ukupno trajanje za slanje svih podataka. |
|
Argument backlog metode socket.listen() sada je neobavezan. Prema zadanim postavkama postavljen je na SOMAXCONN ili na 128, ovisno o tome što je manje. |
Potpuno |
Podrška za Memory BIO |
|
Podrška za pregovaranje o protokolu aplikacijskog sloja (Application-Layer Protocol Negotiation) |
|
Postoji nova metoda SSLSocket.version() za ispitivanje stvarne verzije protokola koja se koristi. |
|
Klasa SSLSocket sada implementira metodu SSLSocket.sendfile(). |
|
Metoda SSLSocket.send() sada na neblokirajućoj utičnici podiže iznimku ssl.SSLWantReadError ili ssl.SSLWantWriteError ako bi operacija blokirala. Ranije bi vraćala 0. |
|
Funkcija cert_time_to_seconds() sada tumači ulazno vrijeme kao UTC, a ne kao lokalno vrijeme, prema RFC 5280. Osim toga, povratna vrijednost uvijek je int. |
|
Nove metode SSLObject.shared_ciphers() i SSLSocket.shared_ciphers() vraćaju popis šifri koje je klijent poslao tijekom rukovanja (handshake). |
|
Metode SSLSocket.do_handshake(), SSLSocket.read(), SSLSocket.shutdown() i SSLSocket.write() klase SSLSocket više ne poništavaju vremensko ograničenje utičnice svaki put kada se bajtovi prime ili pošalju. |
|
Funkcija match_hostname() sada podržava podudaranje IP adresa. |
|
Nova funkcija set_coroutine_wrapper() omogućuje postavljanje globalne kuke koja će se pozvati svaki put kada se stvori objekt korutine pomoću funkcije async def. Odgovarajuća funkcija get_coroutine_wrapper() može se koristiti za dohvaćanje trenutno postavljenog omotača. |
|
Nova funkcija is_finalizing() može se koristiti za provjeru gasi li se Python interpreter. |
|
Funkcija monotonic() sada je uvijek dostupna |
|
Napomene