Python 3.15.0 正式版已發布。官方在 Python Insider 指出,3.15.0 是 Python 的最新主要版本,相比 3.14 加入多項新功能與最佳化,包含來自 1,012 位貢獻者的 5,643 次提交。[1][2]
解釋器改進
官方列出的解釋器層面改動包括多項 PEP:[1]
- PEP 661:新增內建
sentinel型別 - PEP 686:Python 現以 UTF-8 作為預設編碼
- PEP 798:推導式(comprehension)支援解包
- PEP 810:顯式惰性匯入(lazy imports),加快啟動時間
- PEP 814:新增內建
frozendict型別 - PEP 829:套件啟動設定檔
官方指出,實驗性 JIT 編譯器經過大幅升級:在 x86-64 Linux 上,相對於標準解釋器有 7 至 8% 的幾何平均效能改善;在 AArch64 macOS 上,相對於尾呼叫(tail-calling)解釋器有 11 至 12% 的加速。官方亦改善了錯誤訊息。[1]
標準庫與型別系統
標準庫方面,官方提到 PEP 799:一個專門整理 Python 效能分析工具的 profiling 套件,以及高頻統計取樣分析器 Tachyon;此外亦加入了更多顏色輸出。[1]
型別系統方面包括:PEP 728(帶型別的額外項目 TypedDict)、PEP 747(以 TypeForm 標註型別形式),以及 PEP 800(型別系統中的不相交基底)。[1]
C API 與建置
C API 方面,官方列出 PEP 782(新增 PyBytesWriter C API 以建立 Python bytes 物件)、PEP 788(C API 對 finalization 的保護),以及 PEP 803、820、793(為 free-threaded 建置提供穩定 ABI 及相關 C API)。建置方面,PEP 831 令 frame pointers 預設啟用,以改善系統層級的可觀測性。[1]
發布版本的其他變動
官方指出,官方 Windows 64 位元二進位檔現改用尾呼叫解釋器;官方 macOS 二進位檔則預設安裝 free-threading 支援。[1]
官方亦提醒 macOS 27.0 的 IDLE 或 tkinter 使用者:當使用會開啟對話框的選單命令時(例如 IDLE 的 About IDLE、Settings、Open Module),這類 GUI 應用可能停住並出現彩虹球,需要強制結束。官方指這源於 macOS 27.0 的作業系統行為改變,相信影響所有現行版本的 Tk 圖形工具包,因而影響所有現行 Python 版本的 tkinter;若依賴 macOS 上的 Tk 應用(如 IDLE),可考慮暫緩安裝 macOS 27.0,並追蹤 cpython issue #158053 的更新。[1]
發布花絮
官方在文末提到,為慶祝 3.15,Barry Warsaw 製作了一個名為 whatsnewt 的終端機文字冒險遊戲,帶玩家走過「Python 3.15 新功能」,內含十八道謎題,每道都對應一項真實的 3.15 功能,部分謎題需要型別檢查器,答案由 pyrefly 驗證;最簡單的執行方式為 uvx --python 3.15 whatsnewt。[1]
官方亦感謝負責 3.15 標誌設計的 Georgi Ker 與 Marie Nordin、透過 Sovereign Tech Fellowship 支持發布經理的 Sovereign Tech Agency,以及一眾義務參與者;發布團隊包括 Hugo van Kemenade、Ned Deily 與 Steve Dower。[1]