Python 3.5¶
Poniżej znajduje się lista sfinalizowanych/zaakceptowanych dokumentów PEP dla Pythona 3.5, pogrupowanych według ich wpływu na MicroPython.
Rozszerzenia składni |
Status |
|
Dodatkowe uogólnienia rozpakowywania |
Częściowo |
|
Nowy operator mnożenia macierzy |
Pełne |
|
Korutyny ze składnią |
Pełne |
|
Rozszerzenia i zmiany w środowisku wykonawczym |
||
Formatowanie % dla łańcuchów binarnych |
Pełne |
|
Ponawianie wywołań systemowych zakończonych niepowodzeniem z |
Pełne |
|
Zmiana obsługi |
Pełne |
|
Zmiany w bibliotece standardowej |
||
|
||
|
Pełne |
|
Różne zmiany |
||
Ulepszone wsparcie aplikacji zip w Pythonie |
||
Uświadomienie programu Python Launcher o wirtualnych środowiskach |
Nie dotyczy |
|
Wskazówki dotyczące typów (tylko zalecenia) |
Pełne [1] |
|
Eliminacja plików PYO |
Nie dotyczy |
|
Przeprojektowanie ładowania modułów rozszerzeń |
||
Inne zmiany w języku:
Dodano procedury obsługi błędów namereplace. Procedury obsługi błędów backslashreplace działają teraz z dekodowaniem i translacją. |
|
Łańcuchy dokumentacyjne właściwości są teraz zapisywalne. Jest to szczególnie przydatne w przypadku łańcuchów dokumentacyjnych collections.namedtuple() |
|
Cykliczne importy obejmujące importy względne są teraz obsługiwane. |
Nowe moduły:
Zmiany w modułach wbudowanych:
Klasa OrderedDict jest teraz zaimplementowana w języku C, co czyni ją od 4 do 100 razy szybszą. |
|
Widoki OrderedDict.items() , OrderedDict.keys() , OrderedDict.values() obsługują teraz iterację reversed(). |
|
The deque class now defines index(), insert(), and copy(), and supports the + and * operators. |
|
Łańcuchy dokumentacyjne tworzone przez namedtuple() można teraz aktualizować. |
|
Klasa UserString implementuje teraz metody __getnewargs__(), __rmod__(), casefold(), format_map(), isprintable() i maketrans(), aby odpowiadały odpowiednim metodom str. |
|
Porównywanie elementów w merge() można teraz dostosować, przekazując funkcję klucza w nowym opcjonalnym argumencie nazwanym key, a nowy opcjonalny argument nazwany reverse może być użyty do odwrócenia porównywania elementów |
|
Nowa metoda BufferedIOBase.readinto1(), która używa co najwyżej jednego wywołania metod RawIOBase.read() lub RawIOBase.readinto() leżącego u podstaw surowego strumienia |
|
Dekoder JSON zgłasza teraz JSONDecodeError zamiast ValueError, aby zapewnić lepsze informacje kontekstowe o błędzie. |
|
Do modułu math dodano dwie nowe stałe: inf i nan. |
Pełne |
Nowa funkcja isclose() zapewnia sposób testowania przybliżonej równości. |
|
Dodano nową funkcję gcd(). Funkcja fractions.gcd() jest teraz wycofywana. |
|
Dodano nową funkcję scandir() zwracającą iterator obiektów DirEntry. |
|
Funkcja urandom() używa teraz wywołania systemowego getrandom() w systemie Linux 3.17 lub nowszym oraz getentropy() w systemie OpenBSD 5.6 i nowszym, eliminując potrzebę używania /dev/urandom i unikając niepowodzeń spowodowanych potencjalnym wyczerpaniem deskryptorów plików. |
|
Nowe funkcje get_blocking() i set_blocking() umożliwiają pobieranie i ustawianie trybu blokowania deskryptora pliku (O_NONBLOCK.) |
|
Pojawiła się nowa funkcja os.path.commonpath() zwracająca najdłuższą wspólną podścieżkę każdej przekazanej nazwy ścieżki |
|
Odwołania i odwołania warunkowe do grup o stałej długości są teraz dozwolone w asercjach wstecznego wyszukiwania |
|
Liczba grup przechwytujących w wyrażeniach regularnych nie jest już ograniczona do 100. |
|
Funkcje sub() i subn() zastępują teraz niedopasowane grupy pustymi łańcuchami zamiast zgłaszać wyjątek. |
|
Wyjątki re.error mają nowe atrybuty: msg, pattern, pos, lineno i colno, które zapewniają lepsze informacje kontekstowe o błędzie |
|
Funkcje z limitami czasu używają teraz zegara monotonicznego zamiast zegara systemowego. |
|
Nowa metoda socket.sendfile() umożliwia wysłanie pliku przez gniazdo za pomocą wysokowydajnej funkcji os.sendfile() w systemach UNIX, dzięki czemu przesyłanie jest od 2 do 3 razy szybsze niż przy użyciu zwykłego socket.send() |
|
Metoda socket.sendall() nie resetuje już limitu czasu gniazda za każdym razem, gdy bajty są odbierane lub wysyłane. Limit czasu gniazda jest teraz maksymalnym całkowitym czasem trwania wysyłania wszystkich danych. |
|
Argument backlog metody socket.listen() jest teraz opcjonalny. Domyślnie jest ustawiony na SOMAXCONN lub na 128, w zależności od tego, która wartość jest mniejsza. |
Pełne |
Wsparcie Memory BIO |
|
Wsparcie negocjacji protokołu warstwy aplikacji |
|
Pojawiła się nowa metoda SSLSocket.version() do odpytywania o faktycznie używaną wersję protokołu. |
|
Klasa SSLSocket implementuje teraz metodę SSLSocket.sendfile(). |
|
Metoda SSLSocket.send() zgłasza teraz wyjątek ssl.SSLWantReadError lub ssl.SSLWantWriteError na gnieździe nieblokującym, jeśli operacja zostałaby zablokowana. Wcześniej zwracała 0. |
|
Funkcja cert_time_to_seconds() interpretuje teraz czas wejściowy jako UTC, a nie jako czas lokalny, zgodnie z RFC 5280. Dodatkowo wartość zwracana jest zawsze liczbą całkowitą. |
|
Nowe metody SSLObject.shared_ciphers() i SSLSocket.shared_ciphers() zwracają listę szyfrów wysłanych przez klienta podczas nawiązywania połączenia. |
|
Metody SSLSocket.do_handshake(), SSLSocket.read(), SSLSocket.shutdown() i SSLSocket.write() klasy SSLSocket nie resetują już limitu czasu gniazda za każdym razem, gdy bajty są odbierane lub wysyłane. |
|
Funkcja match_hostname() obsługuje teraz dopasowywanie adresów IP. |
|
Nowa funkcja set_coroutine_wrapper() umożliwia ustawienie globalnego punktu zaczepienia, który będzie wywoływany za każdym razem, gdy obiekt korutyny zostanie utworzony przez funkcję async def. Odpowiadająca jej funkcja get_coroutine_wrapper() może być użyta do uzyskania aktualnie ustawionego opakowania. |
|
Nowa funkcja is_finalizing() może być użyta do sprawdzenia, czy interpreter Pythona jest w trakcie zamykania. |
|
Funkcja monotonic() jest teraz zawsze dostępna |
|
Uwagi