2011-12-28 122 views
2

可能重複:
Dynamic module import in Python動態模塊加載在python

我有模塊的列表,像這樣:

modules = ['ModuleA', 'ModuleB', 'ModuleC'] 

用於模塊駐留在每個的.py在我已經添加到包含路徑的子目錄中。我正在尋找的是一種加載模塊並構建對所述加載模塊的引用列表的方式。

回答

2

這應該回答你的問題:

references = map(__import__, modules) 

或者如果你喜歡字典,模塊的名稱作爲關鍵字:

references = dict(zip(modules, map(__import__, modules))) 

是否回答你的問題?

+1

很好用的地圖。 – 2011-12-28 06:09:07

1
import importlib 

imports = {} 

for i in modules: 
    imports[i] = importlib.import_module(i) 

小心ImportError s。

+0

不錯的解決方案,但僅適用於3.1(如[在文檔中聲明](http://docs.python.org/dev/library/importlib.html#module-importlib))。 – Tadeck 2011-12-28 05:32:19