宅中地 - 每日更新
宅中地 - 每日更新

贊助商廣告

X

Python引入延遲導入機制顯著提升程序啟動速度

2025年11月05日 首頁 » 熱門科技

Python程序即將獲得更快的啟動速度,這要歸功於PEP 810"顯式延遲導入"提案,該功能允許腳本推遲加載導入的庫,直到實際需要時才加載,而不是在啟動時就加載。

這項Python增強提案由指導委員會成員Pablo Salgado於10月3日提出,並於11月3日獲得批准。該增強功能將把延遲導入直接集成到Python語言中,作為一個可選功能。

在Python中導入模塊既是優勢也是痛點。優勢在於幾個導入語句就能極大擴展程序功能,但痛點是導入的符號可能永遠不會被使用,這可能會增加啟動時間。一個典型例子是從命令行調用程序時使用--help參數,卻不得不等待加載那些並不需要的導入模塊。

作為解決方案,延遲導入將事情推遲到實際需要時才執行。

這個想法並不新鮮(令人驚訝的是標準實現竟然花了這麼長時間)。雖然有多種方法可以實現延遲導入,但Python語言本身並沒有內置這個功能。

這並非全新概念,但之前的嘗試都失敗了。PEP 690被拒絕,部分原因是它將延遲導入設為默認選項,引發了對社區分裂和向後兼容性的擔憂。與此同時,開發者創建了自己的解決方案,一些組織甚至分叉了CPython。

PEP 810通過將延遲導入設為可選功能而獲得成功,在保持向後兼容性的同時,標準化了目前分散的自定義解決方案格局。

該提案引起了超過450條評論,包括關於"defer"(推遲)是否比"lazy"(延遲)聽起來更專業的爭論。

Python指導委員會代表Barry Warsaw發布評論:"感謝你們在這方面的工作,這是Python社區期待已久的功能。考慮到早期的嘗試和現有的解決方案,我們認為這達到了完美的平衡。"

雖然開發者還需要等待一段時間才能享受到PEP 810的成果,但對於許多因漫長加載時間而沮喪的Python用戶來說,Python本身能夠解決這個問題的功能來得再及時不過了。

Q&A

Q1:PEP 810延遲導入功能是什麼?

A:PEP 810是Python的"顯式延遲導入"增強提案,允許程序推遲加載導入的庫,直到實際需要時才加載,而不是在程序啟動時就加載所有導入模塊,從而顯著提升Python程序的啟動速度。

Q2:為什麼之前的延遲導入方案沒有成功?

A:之前的PEP 690提案被拒絕,主要是因為它將延遲導入設為默認選項,引發了社區對兼容性問題和社區分裂的擔憂。而PEP 810成功的關鍵在於將延遲導入設為可選功能,保持了向後兼容性。

Q3:PEP 810延遲導入能解決什麼實際問題?

A:主要解決Python程序啟動時間過長的問題。比如當你在命令行使用--help參數時,程序需要加載很多實際用不到的導入模塊,延遲導入可以避免這種不必要的等待時間,只在真正需要時才加載相應模塊。

宅中地 - Facebook 分享 宅中地 - Twitter 分享 宅中地 - Whatsapp 分享 宅中地 - Line 分享
相關內容
Copyright ©2025 | 服務條款 | DMCA | 聯絡我們
宅中地 - 每日更新