Python開發團隊發布了Python 3.15。新版本把UTF-8設為預設的文字編碼,減少程式在不同作業系統讀寫文字時的差異,同時新增延遲匯入機制,讓指定的模組等到實際使用時才載入,以縮短程式啟動時間。新版也改進了實驗性編譯器,以及自由執行緒版本的擴充模組支援。
過去Python程式在讀寫文字檔時,如果沒有特別指定編碼,會依照作業系統和語言設定採用不同的方式處理。同一份檔案搬到另一台電腦,可能出現亂碼或讀取錯誤。Python 3.15改為一律以UTF-8處理未指定編碼的文字資料,已經明確設定編碼的程式則不受影響。
不過預設編碼的變更可能影響舊程式。舉例來說,原本依賴系統編碼讀取Big5中文檔案的程式,升級之後可能無法正確解碼。開發者可以在程式裡指定文字編碼,或透過設定關閉UTF-8模式,保留舊版的行為。
延遲匯入是這次另一個值得注意的改進。過去應用程式執行匯入指令,就會立刻載入相關模組,即使這次執行根本不會用到某些功能,也得花時間讀取檔案和初始化。新版加入延遲匯入的寫法,開發者可以指定部分模組等到第一次使用才載入,對於功能很多、但每次只會用到少數功能的應用程式,可以減輕啟動時的負擔。
延遲匯入並非預設啟用,開發者必須明確使用。而且因為模組載入的時間點往後移,如果模組不存在或初始化失敗,錯誤也可能要到第一次使用時才會出現,除錯時要多留意。
效能方面,新版改進了實驗性的執行期間編譯器。官方測試顯示,在x86-64架構的Linux環境中,啟用該編譯器的版本,綜合效能比未啟用的最佳化版本高出7%至8%。不過官方也說明,這不代表所有程式都能獲得相同的加速效果。
對於想充分利用多核心效能的開發者,新版針對可以讓多個執行緒平行執行Python程式碼的自由執行緒版本,新增了穩定的擴充模組相容介面。C語言寫的擴充模組經過調整、依照新介面編譯之後,可以在Python 3.15及後續的自由執行緒版本使用,減少每次升級都要重新編譯的麻煩。
此外,Python這次還加入了Tachyon效能分析工具,可以在程式運作的時候檢查出比較耗時的部分,幫助開發者找出瓶頸。
整體來看,Python 3.15是一次著重基礎體質的更新:編碼問題從源頭解決、啟動速度可以更快、效能持續推進。開發者升級前,記得先檢查程式裡有沒有依賴系統預設編碼的寫法,避免上線後才發現文字處理出錯。