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