Python 3.14 menghadirkan paralelisme sejati, templat yang aman, dan pengalaman yang lebih lancar

  • Anotasi malas dan t-string memberikan kinerja dan templat yang aman.
  • Subinterpreter, peningkatan free-threading, dan lebih sedikit penguncian meningkatkan paralelisme.
  • Zstandard, alat asyncio baru, dan perbaikan bug yang lebih jelas membuat kehidupan sehari-hari lebih mudah.
  • Debugging yang aman dan interpreter baru dengan panggilan ekor meningkatkan visibilitas dan kecepatan.

Python 3.14

Python terus tumbuh dan mengkonsolidasikan dirinya sebagai alat utama dalam ilmu data, backend, otomatisasi dan pengajaran, dan versi 3.14 Ia hadir dengan banyak perubahan yang memengaruhi kinerja, konkurensi, dan pengalaman sehari-hari.Dalam panduan ini, kami memberi tahu Anda, dengan contoh dan konteks, apa yang ada di balik akronim dan modul baru yang akan Anda lihat di mana-mana dan mengapa. Peningkatan ini berdampak baik bagi pemula maupun tim yang menerapkan produksi..

Di luar kebisingan biasa yang menyertai setiap rilis, berikut ini kami telah mengumpulkan hal-hal terpenting yang telah diumumkan dan didokumentasikan secara resmi, beserta detail praktis yang dibagikan oleh pengembang yang sudah menggunakan 3.14. Dari anotasi malas hingga subinterpreter dalam pustaka standar, termasuk t-string, Zstandard, debugger aman baru, dan penyempurnaan REPL., hal-hal penting dijelaskan dengan jelas di sini.

Ikhtisar: Apa yang Sebenarnya Berubah di Python 3.14

Python 3.14 dirilis pada 7 Oktober dan menggabungkan perubahan implementasi, API, dan pustaka standar yang menyentuh beberapa area penting. Dokumentasi resminya mempertahankan berkas What's New dan Changelog tradisional yang dibangun dari Misc/NEWS.d, yang berfungsi sebagai peta detail untuk melihat, baris demi baris, apa yang telah ditambahkan. Jika Anda menginginkan gambaran yang lebih besar: paralelisme yang lebih bermanfaat, kemampuan templating dan debugging baru, pengemasan kompresi yang dimodernisasi, dan sejumlah besar pesan kesalahan yang jauh lebih bermanfaat..

Di dunia nyata, hal ini berarti program dengan pertikaian thread yang lebih sedikit, lebih banyak opsi untuk melakukan paralelisasi tanpa mengunci GIL, lebih sedikit kejutan anotasi, dan shell interaktif yang lebih banyak membantu daripada menghalangi. Selain itu, komunitas itu sendiri menyoroti kemajuan praktis seperti warna dalam REPL dan PDB, peningkatan dalam argparse dan unittest, dan utilitas stdlib yang menyederhanakan tugas sehari-hari..

Anotasi tertunda: PEP 649 + PEP 749

Salah satu perubahan paling signifikan adalah evaluasi malas anotasi dalam fungsi, kelas, dan modul. Sekarang, alih-alih dievaluasi saat didefinisikan, anotasi tersebut disimpan dalam fungsi khusus dan diselesaikan saat dibutuhkan. Hal ini mengurangi biaya waktu definisi, menghindari kesalahan karena referensi maju dan membuat pekerjaan dengan tipe besar atau impor mahal jauh lebih tertahankan..

Untuk memeriksanya, modul muncul annotationlib, dengan tiga format utama: VALUE (dievaluasi ke nilai runtime seperti sebelumnya), FORWARDREF (nama merek belum ditentukan) dan STRING (mengembalikan anotasi sebagai teks). Untuk migrasi, blok porting dalam dokumen resmi menyediakan panduan kapan harus mengubah kode, meskipun dalam sebagian besar kasus tidak ada yang perlu diubah..

Detail penting: jika Anda menggunakan from __future__ import annotations, semantik khususnya masih berlaku, jadi periksa alat pengetikan Anda. Tujuan keseluruhannya adalah untuk meningkatkan kinerja dan kegunaan, sambil tetap mempertahankan kemungkinan introspeksi bila diperlukan..

Subinterpreter di perpustakaan standar: PEP 734

CPython telah memungkinkan banyak interpreter melalui C-API selama beberapa dekade, tetapi 3.14 membawanya ke semua orang dengan concurrent.interpreters. Ini membuka pintu bagi konkurensi yang lebih mirip manusia dan paralelisme multi-inti yang sesungguhnya tanpa harus selalu menarik proses..

Apa keuntungannya? Model seperti CSP atau model aktor, isolasi bawaan dengan kemampuan berbagi secara eksplisit, dan konsumsi sumber daya yang lebih rendah dibandingkan dengan proses. Untuk CPU intensif, karena interpreter 3.12 cukup terisolasi untuk berjalan secara paralel, membuka skenario yang sebelumnya menderita GIL.

Terdapat beberapa keterbatasan: startup interpreter belum dioptimalkan, penggunaan memori dapat ditingkatkan, dan beberapa opsi berbagi nyata di luar memoryview, dan sebagian besar ekstensi PyPI tanpa dukungan penuh. Kabar baiknya adalah standar tersebut sudah mencakup dukungan, ada InterpreterPoolExecutor en concurrent.futures, dan komunitas memindahkan chip dalam Cython, pybind11, nanobind atau PyO3.

Templat senar T: PEP 750

T-string tiba, mekanisme templat dengan sintaksis f-string tetapi mengembalikan objek. Template dengan bagian statis dan interpolasi yang terpisah, bukan str end. Hal ini memungkinkan Anda memproses konten sebelum menggabungkannya, membersihkan masukan pengguna, dan merakit DSL ringan dengan lebih aman..

Anda menulis dengan awalan t bukannya f, Anda mengulangi Template dan Anda memproses setiap fragmen atau interpolasi sesuai keinginan Anda. Dari escape HTML hingga membangun struktur mirip DOM atau templat yang menerima kamus atribut, Anda akan memperoleh fleksibilitas tanpa mengorbankan kejelasan..

Python 3.14 memperkenalkan antarmuka aman untuk debugging eksternal: PEP 768

3.14 memperkenalkan antarmuka debugging tanpa overhead yang memungkinkan debugger dan profiler terhubung dengan aman ke proses Python yang sedang berjalan. Tidak ada lagi solusi sementara yang tidak aman: kini ada titik eksekusi aman untuk menyuntikkan kode debugging tanpa menyimpang dari jalur interpreter normal..

Untuk memudahkan hal ini, hal ini diungkapkan sys.remote_exec(), yang mengirimkan kode untuk dieksekusi pada titik aman berikutnya dalam proses target. PEP menjelaskan protokol yang mendasarinya, termasuk kontrol keamanan untuk membatasi akses dan mencegah penyalahgunaan, yang merupakan kunci dalam sistem ketersediaan tinggi..

Jenis penerjemah baru dengan panggilan ekor di C

Kebaruan teknis lainnya adalah interpreter alternatif yang menghubungkan panggilan ekor antara fungsi C kecil yang mengimplementasikan opcode, bukan kode operasi besar. switch. Pada platform dan kompiler yang didukung (Clang 19+ pada x86-64 dan AArch64), tolok ukur awal menunjukkan peningkatan geometris sebesar 3% hingga 5%..

Ini adalah opt-in, dan direkomendasikan untuk mengaktifkan PGO karena ini adalah pengaturan yang terbukti menghasilkan keuntungan. Ini diaktifkan dengan opsi kompilasi --with-tail-call-interp, dan GCC diharapkan untuk mendukungnya di masa depan.

Mode ulir bebas: PEP 703 dan kinerja praktis

Mode bebas GIL, diperkenalkan dalam 3.13, mengalami kemajuan pesat dalam 3.14: perubahan C-API yang diajukan oleh PEP 703 diselesaikan, dan solusi sementara diganti dengan solusi permanen. Penerjemah adaptif khusus (PEP 659) sekarang aktif dalam mode ini, yang bersama dengan pengoptimalan lainnya mengurangi penalti.

Saat ini, kerugian dalam single-threading berkisar 5-10%, bergantung pada platform dan kompiler, harga yang wajar jika dibandingkan dengan perolehan paralelisme riil. Di Windows, saat mengkompilasi ekstensi untuk build free-threaded, Anda harus mendefinisikan Py_GIL_DISABLED, dan saat runtime Anda dapat memeriksa pengaturan melalui sysconfig.get_config_var().

Selain itu, bendera tersebut muncul -X context_aware_warnings untuk mengendalikan filter peringatan berdasarkan konteks, diaktifkan secara default pada versi tanpa GIL dan dinonaktifkan pada versi yang menerapkannya. Juga tiba thread_inherit_context sehingga benang yang dibuat mewarisi Context() dari pemanggil, yang memengaruhi filter warnings, decimal dan API lainnya dengan contextvars.

Pesan kesalahan yang jauh lebih berguna di Python 3.14

Penerjemah sekarang menyarankan kata kunci saat mendeteksi istilah yang mirip dengan kata kunci Python, membantu Anda dengan cepat menemukan kesalahan ketik. Kasus seperti penulisan "pritn" alih-alih "print" sudah diperbaiki dengan petunjuk langsung, meskipun tidak semua varian akan dibahas..

Ada pesan khusus untuk elif setelah else, dan dalam ekspresi kondisional itu menunjukkan di mana suatu hal yang hilang expression jika Anda meletakkan kalimat setelahnya else o pass/break/continue sebelumnya if. Kesalahan yang disebabkan oleh string yang ditutup secara tidak benar dan awalan yang tidak kompatibel dalam string juga disempurnakan..

Lebih banyak peningkatan: pesan lebih jelas saat menggunakan as dengan target yang tidak kompatibel dalam impor, kecuali untuk pencocokan pola; detail saat mencoba memasukkan objek yang tidak dapat di-hash dict o set; dan pemberitahuan saat Anda memasuki manajer konteks sinkron dengan async with atau sebaliknya. Segala sesuatunya bertambah sehingga penerjemah dapat memberi tahu Anda apa, di mana, dan mengapa.

Kompresi modern di stdlib: PEP 784 dan Zstandard

Paketnya sudah lahir compression, yang mengekspor kembali lzma, bz2, gzip y zlib sebagai compression.lzma, compression.bz2, compression.gzip y compression.zlib. Nama-nama baru ini merupakan rute yang disukai sejak 3.14, meskipun rute klasik tidak dikesampingkan untuk saat ini..

Bintang itu adalah compression.zstd, dukungan asli untuk Zstandard dengan pengikatan ke pustaka zstd Meta. Anda mendapatkan API yang cepat dan efisien, dan dukungan langsung untuk file Zstandard di tarfile, zipfile y shutil, tanpa menginstal paket eksternal.

Introspeksi Asyncio dari baris perintah

Anda sekarang dapat memeriksa proses Python yang berjalan dengan tugas asinkron menggunakan python -m asyncio ps PID y python -m asyncio pstree PID. Subperintah ps menampilkan tabel datar tugas, nama, dan tumpukan; pstree menghasilkan pohon panggilan asinkron..

Hal ini terutama berguna dalam program yang panjang atau terblokir, mendeteksi di mana letak hambatannya, tugas apa yang menunggu, dan bagaimana coroutine saling berhubungan satu sama lain. Jika ada siklus dalam grafik await, alat akan mendeteksinya dan mencantumkan rute yang bermasalah..

Kontrol Peringatan Bersamaan di Python 3.14

warnings.catch_warnings Anda dapat menggunakan variabel konteks untuk filter peringatan jika Anda mengaktifkan tanda context_aware_warnings melalui -X atau variabel lingkungan. Dengan cara ini, penanganan peringatan dapat diprediksi saat Anda mencampur untaian atau tugas asinkron dan tidak saling tumpang tindih..

Pengalaman Pengguna Python 3.14: Konsol, Argparse, UnitTest, dan Lainnya

Siapa pun yang telah menggunakan 3.14 sebagai rilis utama selama beberapa bulan menyoroti warna dalam pengalaman sehari-hari: penyorotan sintaksis di REPL dan PDB, dengan contoh Dukungan Python 3 di Kodi, bantuan yang lebih baik dalam argparse dan pesan yang lebih ramah di unittest. Rincian ini mengurangi gesekan dan menyelamatkan Anda dari keharusan masuk ke editor untuk memahami apa yang salah..

Konsol interaktif menyarankan perbaikan untuk kesalahan ketik umum, misalnya "pritn" klasik yang sekarang mengarahkan Anda ke print. Ada juga pelengkapan otomatis impor yang lebih cerdas, membantu Anda menemukan modul tanpa meninggalkan perintah..

Utilitas yang sangat praktis muncul di stdlib: metode salin dan pindahkan di pathlib yang menghindari menarik shutil untuk dasar-dasarnya, a date.strptime langsung tanpa harus melalui datetime.strptime().date(), dan UUID v7, yang menggabungkan keacakan dengan keteraturan temporal. Pintasan kecil, dampak besar pada skrip dan alat internal.

argparse menambahkan saran ketika Anda membuat kesalahan dalam pilihan, mengurangi waktu debugging CLI; dan ya, t-string sudah mulai memberi makan ekosistem kecil pustaka yang memanfaatkannya untuk templat aman. Jika Anda bekerja dengan string kompleks atau masukan pengguna, Anda akan melihat perbedaannya..

Paralelisme, lebih sedikit pemblokiran dan tidak ada lagi kejutan dengan proses

Beberapa perubahan bertujuan untuk mengurangi pemblokiran antar-thread: dengan subinterpreter dalam stdlib dan kemajuan mode bebas GIL, ada lebih banyak opsi untuk mendistribusikan beban tanpa mengalami kebuntuan. Untuk layanan dan pustaka dengan tugas paralel, hal ini menghasilkan peningkatan throughput yang nyata..

Ini juga mengubah perilaku default saat membuat beberapa proses: ia mendukung server garpu di depan garpu sederhananya, yang mengurangi kerusakan kecil dan membuat kegagalan lebih mudah dipahami dalam skenario multiprosesing. Secara praktis: lebih sedikit zombie yang sulit direproduksi dan diagnostik yang lebih bersih.

Jadwal Rilis dan Kematangan Python 3.14

Tim Python mengumumkan beberapa rilis alfa selama siklus 3.14, termasuk Alfa 5, dari total tujuh rilis pra-beta, yang dirancang untuk menguji fitur baru, memperbaiki bug, dan menyempurnakan proses rilis. Tahap beta dimulai pada tanggal 6 Mei 2025, tanpa fitur baru yang hadir, dengan kemungkinan penyesuaian hingga kandidat rilis pada tanggal 22 Juli..

Seperti biasa selama periode rilis pra-stabil, penggunaan pra-rilis di lingkungan produksi tidak disarankan. Dokumentasi resmi menyediakan kalender aktif (PEP 745), pelacak masalah di GitHub, dan panduan untuk berkontribusi melalui Python Software Foundation. Jika Anda mendeteksi bug, tautan dokumen dan laporan yang dihasilkan Sphinx memudahkan untuk membuka dan melacaknya..

Kedipan mata angka: 3.14 dan Tahun Ular

Kebetulan antara nomor versi dan perkiraan historis pi (3.14) telah memunculkan lebih dari satu lelucon di masyarakat, tepat di tahun lunar yang ditandai oleh Ular. Dari Liu Xin hingga Zu Chongzhi, obsesi terhadap perkiraan nilai pi hampir setua pengoptimalan iterator..

Di luar anekdot, versi ini juga memberi penghormatan kepada upaya kolektif ratusan relawan dan perusahaan yang menyediakan layanan teknik. PSF, sebagai organisasi nirlaba, mengundang Anda untuk berpartisipasi, berdonasi, dan meninjau sejarah dan lisensi yang mencakup dokumentasi dan contoh..

Dokumentasinya terus diperbarui hingga saat ini, dengan catatan rilis dan pembangunan ulang otomatis menggunakan Sphinx. Jika Anda menjumpai perilaku tak terduga, periksa changelog dan Apa yang Baru untuk melihat apakah ada nuansa terkini yang menjelaskan perubahan tersebut..

Secara keseluruhan, Python 3.14 menyempurnakan pengalaman sehari-hari sekaligus meletakkan dasar bagi masa depan: paralelisme sejati dengan lebih sedikit gesekan, templat yang aman dan ekspresif, penelusuran kesalahan yang lancar, dan alat yang dapat menjelaskan kesalahan dengan lebih baik. Jika Anda menggunakan versi 3.13, Anda akan melihat perubahan tambahan dan fitur baru; jika Anda belum memperbarui untuk beberapa versi, peningkatan gabungan akan membuat perubahan tersebut bermanfaat..

Dermaga Kodi 22
Artikel terkait:
Kodi 22 Piers: Apa yang Baru, Unduh, dan Apa yang Diharapkan dari Alpha