Python 3.6¶
Python 3.6 beta 1 dirilis pada 12 Sep 2016, dan ringkasan fitur-fitur baru dapat ditemukan di sini:
Fitur Sintaks Baru |
Status |
|
Pemformatan String Literal |
Selesai |
|
Garis Bawah dalam Literal Numerik |
Selesai |
|
Generator Asinkron |
||
Sintaks untuk Anotasi Variabel (sementara) |
Selesai |
|
Comprehension Asinkron |
||
Fitur Built-in Baru |
||
Mempertahankan urutan kwargs dalam sebuah fungsi |
||
Kustomisasi pembuatan kelas yang lebih sederhana |
Sebagian [1] |
|
Mempertahankan Urutan Definisi Atribut Kelas |
||
Perubahan Pustaka Standar |
||
Disambiguasi Waktu Lokal |
||
Menambahkan Modul Secrets ke Pustaka Standar |
||
Menambahkan protokol path sistem file |
||
Internal CPython |
||
Menambahkan versi privat ke dict |
Tidak akan dilakukan |
|
Menambahkan API evaluasi bingkai ke CPython |
||
Perubahan Linux/Windows |
||
Membuat |
||
Mengubah enkoding konsol Windows ke UTF-8 |
||
Mengubah enkoding sistem file Windows ke UTF-8 |
||
Perubahan Bahasa Lainnya:
Pernyataan global atau nonlocal kini harus muncul secara tekstual sebelum penggunaan pertama nama yang terpengaruh dalam cakupan yang sama. Sebelumnya ini adalah SyntaxWarning. |
|
Kini dimungkinkan untuk mengatur metode khusus ke None untuk menunjukkan bahwa operasi yang bersangkutan tidak tersedia. Misalnya, jika sebuah kelas mengatur __iter__() ke None, kelas tersebut tidak dapat diiterasi. |
|
Urutan panjang baris traceback yang berulang kini disingkat sebagai [Previous line repeated {count} more times] |
|
Import kini memunculkan pengecualian baru ModuleNotFoundError ketika tidak dapat menemukan modul. Kode yang saat ini memeriksa ImportError (dalam try-except) masih akan berfungsi. |
|
Metode kelas yang mengandalkan super() tanpa argumen kini akan bekerja dengan benar ketika dipanggil dari metode metakelas selama pembuatan kelas. |
Perubahan pada modul built-in:
Iterator array.array yang habis kini akan tetap habis meskipun array yang diiterasi diperluas. |
|
Fungsi b2a_base64() kini menerima argumen kata kunci newline opsional untuk mengontrol apakah karakter newline ditambahkan ke nilai kembalian |
Selesai |
Konstanta baru cmath.tau (τ) telah ditambahkan |
|
Konstanta baru: cmath.inf dan cmath.nan untuk mencocokkan math.inf dan math.nan, dan juga cmath.infj dan cmath.nanj untuk mencocokkan format yang digunakan oleh repr kompleks |
|
Kelas dasar abstrak Collection baru telah ditambahkan untuk merepresentasikan kelas kontainer iterable berukuran |
|
Kelas dasar abstrak Reversible baru merepresentasikan kelas iterable yang juga menyediakan metode __reversed__(). |
|
Kelas dasar abstrak AsyncGenerator baru merepresentasikan generator asinkron. |
|
Fungsi namedtuple() kini menerima argumen kata kunci opsional module, yang bila ditentukan, digunakan untuk atribut __module__ dari kelas named tuple yang dikembalikan. |
|
Argumen verbose dan rename untuk namedtuple() kini hanya berupa kata kunci. |
|
Instance collections.deque rekursif kini dapat dipickle. |
|
Fungsi hash BLAKE2 ditambahkan ke modul. blake2b() dan blake2s() selalu tersedia dan mendukung fitur lengkap BLAKE2. |
|
Fungsi hash SHA-3 sha3_224(), sha3_256(), sha3_384(), sha3_512(), dan fungsi hash SHAKE shake_128() dan shake_256() telah ditambahkan. |
|
Fungsi derivasi kunci berbasis kata sandi scrypt() kini tersedia dengan OpenSSL 1.1.0 dan yang lebih baru. |
|
json.load() dan json.loads() kini mendukung input biner. JSON yang dienkoding harus direpresentasikan menggunakan UTF-8, UTF-16, atau UTF-32. |
|
Konstanta baru math.tau (τ) telah ditambahkan |
Selesai |
Metode close() baru memungkinkan penutupan eksplisit iterator scandir(). Iterator scandir() kini mendukung protokol context manager. |
|
Di Linux, os.urandom() kini memblokir sampai pool entropi urandom sistem diinisialisasi untuk meningkatkan keamanan. |
|
Syscall Linux getrandom() (mendapatkan byte acak) kini diekspos sebagai fungsi os.getrandom() baru. |
|
Menambahkan dukungan span modifier dalam ekspresi reguler. Contoh: '(?i:p)ython' cocok dengan 'python' dan 'Python', tetapi tidak 'PYTHON'; '(?i)g(?-i:v)r' cocok dengan 'GvR' dan 'gvr', tetapi tidak 'GVR'. |
|
Grup objek match dapat diakses melalui __getitem__, yang setara dengan group(). Jadi mo['name'] kini setara dengan mo.group('name'). |
|
Objek match kini mendukung objek seperti indeks sebagai indeks grup. |
|
Fungsi ioctl() kini mendukung kode kontrol SIO_LOOPBACK_FAST_PATH. |
|
Konstanta getsockopt() SO_DOMAIN, SO_PROTOCOL, SO_PEERSEC, dan SO_PASSSEC kini didukung. |
|
setsockopt() kini mendukung bentuk setsockopt(level, optname, None, optlen: int). |
|
Modul socket kini mendukung keluarga alamat AF_ALG untuk berinteraksi dengan Linux Kernel crypto API. ALG_, SOL_ALG dan sendmsg_afalg() telah ditambahkan. |
|
Konstanta Linux baru TCP_USER_TIMEOUT dan TCP_CONGESTION telah ditambahkan. |
|
ssl mendukung OpenSSL 1.1.0. Versi minimum yang direkomendasikan adalah 1.0.2. |
|
3DES telah dihapus dari suite cipher default dan suite cipher ChaCha20 Poly1305 telah ditambahkan. |
|
SSLContext memiliki konfigurasi default yang lebih baik untuk opsi dan cipher. |
|
Sesi SSL dapat disalin dari satu koneksi sisi klien ke koneksi lain dengan kelas SSLSession baru. Resumsi sesi TLS dapat mempercepat handshake awal, mengurangi latensi dan meningkatkan performa. |
|
Metode get_ciphers() baru dapat digunakan untuk mendapatkan daftar cipher yang diaktifkan dalam urutan prioritas cipher. |
|
Semua konstanta dan flag telah dikonversi ke IntEnum dan IntFlags. |
|
Protokol TLS spesifik sisi server dan klien untuk SSLContext telah ditambahkan. |
|
Ditambahkan SSLContext.post_handshake_auth untuk mengaktifkan dan ssl.SSLSocket.verify_client_post_handshake() untuk memulai autentikasi pasca-handshake TLS 1.3. |
|
kini mendukung float setengah-presisi IEEE 754 melalui penentu format 'e'. |
|
Fungsi getfilesystemencodeerrors() baru mengembalikan nama mode kesalahan yang digunakan untuk mengonversi antara nama file Unicode dan nama file bytes. |
|
Fungsi compress() dan decompress() kini menerima argumen kata kunci |
|
Catatan