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(). | |
Klasa deque sada definira index(), insert() i copy() te podržava operatore + i *. | |
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