Rilis Python 3.8

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 bernama

    Perubahan 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

Tambah komentar