Python 3.5¶
Berikut adalah daftar PEP yang telah difinalkan/diterima untuk Python 3.5 yang dikelompokkan berdasarkan dampaknya terhadap MicroPython.
Ekstensi pada sintaksis |
Status |
|
Generalisasi unpacking tambahan |
Sebagian |
|
Operator perkalian matriks baru |
Lengkap |
|
Coroutine dengan sintaksis |
Lengkap |
|
Ekstensi dan perubahan pada runtime |
||
Format % untuk string biner |
Lengkap |
|
Mencoba ulang syscall yang gagal dengan |
Lengkap |
|
Ubah penanganan |
Lengkap |
|
Perubahan pustaka standar |
||
|
||
|
Lengkap |
|
Perubahan lain-lain |
||
Peningkatan dukungan aplikasi zip Python |
||
Membuat Python Launcher menyadari lingkungan virtual |
Tidak relevan |
|
Type hints (hanya saran) |
Lengkap [1] |
|
Eliminasi file PYO |
Tidak relevan |
|
Perancangan ulang pemuatan modul ekstensi |
||
Perubahan Bahasa Lainnya:
Ditambahkan penangan error namereplace. Penangan error backslashreplace kini berfungsi dengan decoding dan translating. |
|
Docstring properti kini dapat ditulis. Hal ini sangat berguna untuk docstring collections.namedtuple() |
|
Impor melingkar yang melibatkan impor relatif kini didukung. |
Modul Baru:
Perubahan pada modul builtin:
Kelas OrderedDict kini diimplementasikan dalam C, yang membuatnya 4 hingga 100 kali lebih cepat. |
|
Tampilan OrderedDict.items(), OrderedDict.keys(), OrderedDict.values() kini mendukung iterasi reversed(). |
|
Kelas deque kini mendefinisikan index(), insert(), dan copy(), serta mendukung operator + dan *. |
|
Docstring yang dihasilkan oleh namedtuple() kini dapat diperbarui. |
|
Kelas UserString kini mengimplementasikan metode __getnewargs__(), __rmod__(), casefold(), format_map(), isprintable(), dan maketrans() agar sesuai dengan metode str yang bersesuaian. |
|
Perbandingan elemen dalam merge() kini dapat dikustomisasi dengan meneruskan fungsi key dalam argumen kata kunci key opsional baru, dan argumen kata kunci reverse opsional baru dapat digunakan untuk membalik perbandingan elemen |
|
Metode BufferedIOBase.readinto1() baru, yang menggunakan paling banyak satu panggilan ke metode RawIOBase.read() atau RawIOBase.readinto() dari raw stream yang mendasarinya |
|
Decoder JSON kini menampilkan JSONDecodeError sebagai pengganti ValueError untuk memberikan informasi konteks yang lebih baik tentang error. |
|
Dua konstanta baru telah ditambahkan ke modul math: inf dan nan. |
Lengkap |
Fungsi baru isclose() menyediakan cara untuk menguji kesetaraan perkiraan. |
|
Fungsi gcd() baru telah ditambahkan. Fungsi fractions.gcd() kini sudah deprecated. |
|
Fungsi scandir() baru yang mengembalikan iterator dari objek DirEntry telah ditambahkan. |
|
Fungsi urandom() kini menggunakan syscall getrandom() pada Linux 3.17 atau yang lebih baru, dan getentropy() pada OpenBSD 5.6 dan yang lebih baru, menghilangkan kebutuhan untuk menggunakan /dev/urandom dan menghindari kegagalan karena kelebihan deskriptor file. |
|
Fungsi get_blocking() dan set_blocking() baru memungkinkan mendapatkan dan mengatur mode pemblokiran deskriptor file (O_NONBLOCK.) |
|
Terdapat fungsi os.path.commonpath() baru yang mengembalikan sub-path umum terpanjang dari setiap pathname yang diteruskan |
|
Referensi dan referensi bersyarat ke grup dengan panjang tetap kini diizinkan dalam pernyataan lookbehind |
|
Jumlah grup penangkap dalam ekspresi reguler tidak lagi dibatasi hingga 100. |
|
Fungsi sub() dan subn() kini mengganti grup yang tidak cocok dengan string kosong sebagai pengganti menampilkan pengecualian. |
|
Pengecualian re.error memiliki atribut baru, msg, pattern, pos, lineno, dan colno, yang memberikan informasi konteks yang lebih baik tentang error |
|
Fungsi dengan timeout kini menggunakan monotonic clock, sebagai pengganti system clock. |
|
Metode socket.sendfile() baru memungkinkan pengiriman file melalui socket dengan menggunakan fungsi os.sendfile() yang berkinerja tinggi di UNIX, menghasilkan upload 2 hingga 3 kali lebih cepat dibandingkan menggunakan socket.send() biasa |
|
Metode socket.sendall() tidak lagi mengatur ulang timeout socket setiap kali byte diterima atau dikirim. Timeout socket kini merupakan durasi total maksimum untuk mengirim semua data. |
|
Argumen backlog dari metode socket.listen() kini opsional. Secara default diset ke SOMAXCONN atau 128, mana yang lebih kecil. |
Lengkap |
Dukungan Memory BIO |
|
Dukungan Application-Layer Protocol Negotiation |
|
Terdapat metode SSLSocket.version() baru untuk menanyakan versi protokol aktual yang digunakan. |
|
Kelas SSLSocket kini mengimplementasikan metode SSLSocket.sendfile(). |
|
Metode SSLSocket.send() kini menampilkan pengecualian ssl.SSLWantReadError atau ssl.SSLWantWriteError pada socket non-blocking jika operasi akan diblokir. Sebelumnya, metode ini mengembalikan 0. |
|
Fungsi cert_time_to_seconds() kini menginterpretasikan waktu input sebagai UTC dan bukan waktu lokal, sesuai RFC 5280. Selain itu, nilai kembalian selalu berupa int. |
|
Metode SSLObject.shared_ciphers() dan SSLSocket.shared_ciphers() baru mengembalikan daftar cipher yang dikirim oleh klien selama handshake. |
|
Metode SSLSocket.do_handshake(), SSLSocket.read(), SSLSocket.shutdown(), dan SSLSocket.write() dari kelas SSLSocket tidak lagi mengatur ulang timeout socket setiap kali byte diterima atau dikirim. |
|
Fungsi match_hostname() kini mendukung pencocokan alamat IP. |
|
Fungsi set_coroutine_wrapper() baru memungkinkan pengaturan hook global yang akan dipanggil setiap kali objek coroutine dibuat oleh fungsi async def. get_coroutine_wrapper() yang bersesuaian dapat digunakan untuk mendapatkan wrapper yang saat ini diatur. |
|
Fungsi is_finalizing() baru dapat digunakan untuk memeriksa apakah interpreter Python sedang dimatikan. |
|
Fungsi monotonic() kini selalu tersedia |
|
Catatan