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(). | |
Klasa deque definiuje teraz index(), insert() i copy() oraz obsługuje operatory + i *. | |
Ł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