Keluaran Python 3.8

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 bernama

    Perubahan 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

Tambah komen