Versi stabil baru dari Python 3.12 telah hadir dan berikut adalah fitur-fitur barunya

Logo Python

Python adalah bahasa pemrograman tingkat tinggi.

Setelah satu tahun pembangunan, Rilis versi stabil diumumkan dan juga awal dari tahap pengujian alpha bahasa pemrograman Python 3.12 dan Python 3.13 (masing-masing). Disebutkan bahwa cabang baru Python 3.12 ini akan didukung selama satu setengah tahun, setelah itu, selama tiga setengah tahun berikutnya, perbaikan akan dilakukan untuk menghilangkan kerentanan.

Versi baru Python 3.12 yang dihadirkan hadir dengan perbaikan pada fleksibilitas analisis f-string. Dengan peningkatan ini sekarang banyak batasan yang bisa dikesampingkan, karena misalnya Anda sekarang dapat memuat ekspresi valid apa pun dengan Python, termasuk ekspresi multiline, komentar, garis miring terbalik, dan rangkaian escape Unicode. Selain itu, string internal sekarang memungkinkan penggunaan kembali tanda kutip yang sama yaitu tanda kutip ganda sekarang dapat digunakan kembali di dalam tanpa harus mengubah ke tanda kutip tunggal.

Sebagai contoh:

f"""{f'''{f'{f"{1+1}"}'}'''}"""

Sekarang dimungkinkan untuk membuat sarang secara sewenang-wenang:

f"{f"{f"{f"{f"{f"{1+1}"}"}"}"}"}"

Perubahan lain yang menonjol adalah dukungan untuk subinterpreter terisolasi dan kunci global terpisah, yang dimaksudkan untuk meningkatkan efisiensi penggunaan sumber daya dalam sistem multicore, karena untuk penafsir berbeda dalam suatu proses, CPython memungkinkan beberapa penafsir untuk dijalankan secara bersamaan dalam suatu proses. Saat ini, fitur tersebut saat ini hanya tersedia melalui C-API (dukungan API Python akan muncul di cabang besar berikutnya).

Selain itu, hal ini juga ditonjolkanKonten informatif pesan kesalahan telah ditingkatkan dan rentang pengecualian telah diperluas, menawarkan rekomendasi untuk menghilangkan kesalahan ketik. Misalnya, saran untuk mengimpor modul perpustakaan standar yang terlupakan dan saran untuk memberi awalan “self” kini ditampilkan.

Menambahkan kemampuan untuk menggunakan protokol buffer dalam kode Python. Kelas yang menyediakan metode "__buffer__()" sekarang dapat digunakan sebagai tipe yang beroperasi secara langsung pada data biner di memori.

Modul sys.monitoring diusulkan untuk debugging dan pembuatan profil, memungkinkan Anda memantau peristiwa di CPython seperti panggilan, pengembalian fungsi, eksekusi baris kode arbitrer, pengecualian, dan transisi dengan overhead minimal.

Penerjemah mengimplementasikan dukungan untuk subsistem kinerja kernel Linux, yang memungkinkan nama fungsi Python ditentukan saat pembuatan profil menggunakan utilitas kinerja (sebelumnya, hanya nama fungsi C yang ditentukan dalam jejak).

Mengenai peningkatan kinerja disebutkan demikian optimasi berlanjut, dengan yang Total peningkatan kinerja yang diperkirakan sebesar 5% telah diperoleh., itu juga ditambahkan dukungan eksperimental untuk pengoptimal biner BOLT pada proses pembangunan, meningkatkan kinerja sebesar 1-5%, sementara kinerja paket asyncio telah meningkat secara signifikan (beberapa pengujian menunjukkan peningkatan kecepatan sebesar 75%).

Perluasan pemahaman daftar sebaris telah diterapkan, yang mempercepat pengerjaan pemahaman daftar hingga dua kali lipat (untuk kode yang secara aktif menggunakan pemahaman daftar, pengujian menunjukkan peningkatan kinerja secara keseluruhan sebesar 11%).

Untuk meningkatkan keamanan, implementasi bawaan dari Algoritma SHA1, SHA3, SHA2-384, SHA2-512 dan MD5 di hashlib telah diganti dengan opsi yang diverifikasi secara formal dari proyek HACL* (implementasi bawaan hanya digunakan jika OpenSSL tidak tersedia).

dari perubahan lainnya yang menonjol:

  • Modul ini telah memperluas dukungan untuk Windows.
  • Python mengimplementasikan perlindungan stack overflow.
    Pembuatan kelas asyncio.Task telah dipercepat.
  • Ukuran objek Unicode telah dikurangi 8 menjadi 16 byte.
  • Operasi dengan ekspresi reguler re.sub(), re.subn() dan re.Pattern telah dipercepat.
  • Menjalankan pemeriksaan isinstance() untuk beberapa protokol telah dipercepat 2 hingga 20 kali lipat.
  • Secara signifikan (dalam beberapa pengujian hingga 64%) fungsi tokenize.tokenize() dan tokenize.generate_tokens() telah dipercepat.
  • Pemuatan atribut dan pemanggilan metode super() telah dipercepat.
  • Sintaks anotasi tipe baru yang lebih ringkas telah diusulkan untuk kelas dan fungsi generik.
  • Modul browser web tidak lagi mendukung browser lama termasuk Grail, Mosaik, Netscape, Galeon, Skipstone, Iceape, Firebird, dan Firefox hingga versi 36.
  • Sebagai persiapan untuk pengoptimalan di masa mendatang, representasi internal bilangan bulat telah diubah.

Terakhir, seperti disebutkan, pengujian alfa Python 3.13 telah dimulai, di mana mode kompilasi muncul CPython tanpa kunci penerjemah global (GIL, Kunci Penerjemah Global).

Cabang Python 3.13 akan berada dalam versi alfa selama tujuh bulan, di mana fitur-fitur baru akan ditambahkan dan bug diperbaiki sesuai dengan jadwal pengembangan baru, pengerjaan cabang baru dimulai lima bulan sebelum rilis cabang sebelumnya dan pada saat versi berikutnya mencapai tahap pengujian alfa.

Setelah ini, versi beta akan diuji selama tiga bulan, di mana penambahan fitur baru akan dilarang dan semua perhatian akan diberikan untuk memperbaiki bug. Selama dua bulan terakhir sebelum rilis, cabang akan berada pada tahap kandidat rilis, dimana stabilisasi akhir akan dilakukan.

Akhirnya ya Anda tertarik untuk mengetahui lebih banyak tentangnya, Anda dapat memeriksa detailnya di link berikut.