Inovasi yang paling menarik:
- Ungkapan tugasan:
Pengendali := baharu membolehkan anda memberikan nilai kepada pembolehubah dalam ungkapan. Sebagai contoh:
jika (n := len(a)) > 10:
print(f"Senarai terlalu panjang ({n} elemen, dijangka <= 10)") - Argumen kedudukan sahaja:
Anda kini boleh menentukan parameter fungsi yang boleh dilalui melalui sintaks argumen bernama dan yang tidak boleh. Contoh:
def f(a, b, /, c, d, *, e, f):
cetak(a, b, c, d, e, f)f(10, 20, 30, d=40, e=50, f=60) # OK
f(10, b=20, c=30, d=40, e=50, f=60) # ralat, `b` tidak boleh menjadi argumen bernama
f(10, 20, 30, 40, 50, f=60) # ralat, `e` mestilah argumen bernamaPerubahan ini memberi pembangun cara untuk melindungi pengguna API mereka daripada perubahan dalam nama argumen fungsi.
- Sokong f-strings = untuk ekspresi pendokumentasian sendiri dan penyahpepijatan:
Ditambah gula untuk memudahkan penyahpepijatan/mesej pengelogan.
n = 42
print(f'Hello world {n=}.')
# akan mencetak "Hello world n=42." - Membetulkan kata kunci continue dalam blok akhirnya (ia tidak berfungsi sebelum ini).
Lain-lain:
- Anda boleh menentukan secara eksplisit laluan ke cache bytecode dan bukannya __pycache__ lalai.
- Binaan Debug dan Release menggunakan ABI yang sama.
Sumber: linux.org.ru