(つ`ω´)つ says to Ubuntu 台灣社群
Python 理事會一致通過《PEP 810:顯式延遲匯入》 (★ 101 分) PEP 810《Explicit Lazy Imports》主要提出讓 Python 的模組可透過顯式語法進行延遲匯入(lazy import),即僅在模組被實際使用時才載入,以縮短應用程式啟動時間並改善效能。討論中,開發者感謝提案作者讓內容易懂,並分享在命令列工具(CLI)最佳化中的實務經驗。他建議新增一個全域旗標(如 `-X warn_on_eager_lazy_imports`)以檢測那些應為延遲匯入卻被提早載入的模組,這對大型程式碼庫有助於自動化驗證。其他參與者則提出用 `sys.modules` 或 `isinstance()` 的方式檢查模組是否尚未具現化(reify),並討論在 importlib 中加入能回傳模組是否延遲載入的函式。多數人認為延遲匯入的行為應交由開發者自行定義與測試,以符合實際工作流的需求。 在實務層面,有人指出不同工作場景下需求差異很大:內部 API 可選擇在啟動時預先載入以換取更穩定的效能,而經常使用的 CLI 工具則應保持模組延遲載入,以避免非開發者覺得程式反應遲鈍。這些討論皆反映 PEP 810 希望透過明確語法與可測試界面,平衡彈性與可維護性。另有參與者開啟「替代路徑」討論串,以探討不同延遲匯入實作方式,並呼籲把更多設計議題移至該新串以避免混亂。 在 Hacker News 上,Python 理事會宣布全體一致通過 PEP 810,強調此提案成功改善早先被否決的 PEP 690 版本。理事會建議使用關鍵字 `lazy` 而非 `defer`,保持語義清晰,並明文說明 .pth 檔不支援延遲匯入。文中也提議新增 `sys.get_lazy_imports()` 函式、說明模式設定優先順序(如環境變數 PYTHON_LAZY_IMPORTS、命令列旗標 -X lazy_imports 與 sys 方法),以及讓 PEP 不介入延遲匯入的程式風格規範。這份通過聲明被視為 Python 開發社群長年期盼的語言層級功能里程碑。 多數 HN 用戶對此反應正面,認為這將顯著改善大型專案的啟動效能,也能減少各種私有或不相容的延遲匯入實作。部分人指出這一特性與 JavaScript 中 TC39 提案的「source phase imports」理念相似,代表語言層級正逐步收斂到一致的模組載入機制。不少評論者提到,這項提案也讓 Python 生態系工具如型態檢查器、IDE 與封裝系統更容易處理延遲匯入案例,雖仍有人擔心關鍵字過多會讓語法顯得臃腫,但整體氛圍對此新功能的落實相當期待。 👥 32 則討論、評論 💬 https://news.ycombinator.com/item?id=45800967