這是「方便包裝」:https://docs.python.org/2/library/importlib.html只提供寫作的另一種方式:Python的importlib有什麼意義?
import path.to.my.module
有什麼是不,你不能用正常的import語句呢?
這是「方便包裝」:https://docs.python.org/2/library/importlib.html只提供寫作的另一種方式:Python的importlib有什麼意義?
import path.to.my.module
有什麼是不,你不能用正常的import語句呢?
在Python 2.7中,importlib
不是超級有用。事實上,它唯一的功能是import_module
功能,使您能夠從一個字符串名稱導入模塊:
>>> import importlib
>>> importlib.import_module('sys')
<module 'sys' (built-in)>
>>> importlib.import_module('sys').version
'2.7.8 (default, Jul 2 2014, 19:50:44) [MSC v.1500 32 bit (Intel)]'
>>>
注意,你可以做同樣的與__import__
內置,但使用import_module
一般是優選。
但是,在Python 3.1及更高版本中,importlib
的用途已被擴展。根據documentation:
importlib
包的目的是雙重的。一種是在Python源代碼中提供導入語句的實現(因此,擴展名__import__()
函數)。這提供了一個可以移植到任何Python解釋器的實現import
。 這也提供了一個參考實現,它比用Python編程語言實現的實現更容易理解 。二,實現導入的組件暴露在這個包中, 使用戶更容易創建他們自己的定製對象(通常稱爲 一般作爲導入程序)參與導入過程。 有關定製進口商的詳細信息,請登錄PEP 302。
彙總,importlib
現在可以訪問Python的進口語句的內部,建立自定義查找,裝載機,和進口商,進口設置掛鉤,等等。
實際上,從版本3.3開始,importlib
包含import-statement本身的實現。你可以在Using importlib
as the Implementation of Import下的Python 3.3的新增功能頁面閱讀這篇文章。
此外,importlib
將取代與將來版本的Python中的導入相關的舊模塊。例如,舊版imp
模塊在版本3.4中被棄用,轉而使用importlib
。
考慮到所有這些,我認爲可以肯定地說importlib
在現代Python中非常重要。 ;)
它允許您在編碼時導入您不知道名稱的模塊。
例如,當我的應用程序啓動時,我瀏覽一個目錄結構並加載發現它們的模塊。
另請注意:從Python 3.3開始''import'語句本身是由'importlib'包實現的,而不是由非常複雜的C代碼實現的。 – 2014-12-05 02:42:27