Inovasi paling menarik:
- Ekspresi tugas:
Operator := baru memungkinkan Anda menetapkan nilai ke variabel dalam ekspresi. Misalnya:
jika (n := len(a)) > 10:
print(f"Daftar terlalu panjang ({n} elemen, diharapkan <= 10)") - Argumen khusus posisi:
Anda sekarang dapat menentukan parameter fungsi mana yang dapat diteruskan melalui sintaksis argumen bernama dan mana yang tidak. Contoh:
def f(a, b, /, c, d, *, e, f):
mencetak(a, b, c, d, e, f)f(10, 20, 30, d=40, e=50, f=60) # Oke
f(10, b=20, c=30, d=40, e=50, f=60) # error, `b` tidak boleh berupa argumen bernama
f(10, 20, 30, 40, 50, f=60) # error, `e` harus berupa argumen bernamaPerubahan ini memberi pengembang cara untuk melindungi pengguna API mereka dari perubahan nama argumen fungsi.
- Mendukung f-strings = untuk mendokumentasikan ekspresi dan proses debug:
Menambahkan gula untuk menyederhanakan debugging/logging pesan.
n = 42
mencetak(f'Halo dunia {n=}.')
# akan mencetak "Halo dunia n=42." - Memperbaiki kata kunci lanjutkan di blok akhirnya (sebelumnya tidak berfungsi).
Lainnya:
- Anda dapat secara eksplisit menentukan jalur ke cache bytecode alih-alih __pycache__ default.
- Build Debug dan Rilis menggunakan ABI yang sama.
Sumber: linux.org.ru