2016-11-08 45 views
1

此問題被標記爲duplicate。但duplicate問題涉及模塊,而我的問題是要求如何導入模塊的部分。僅導入模塊的某些部分,但將這些部分列爲字符串

我知道我可以使用from mymodule import myfunction模塊的某些部分import。如果要導入幾件事情,但我需要將它們列爲字符串。例如:

import_things = ['thing1', 'thing2', 'thing2'] 
from mymodule import import_things 

我沒問this question,但它看起來像我需要使用的伎倆(如果有的話)以上爲我的代碼。

任何幫助表示讚賞。

回答

3
import importlib 

base_module = importlib.import_module('mymodule') 
imported_things = {thing: getattr(base_module, thing) for thing in import_things} 

imported_things['thing1']() # Function call 

如果你希望能夠使用其已在全球進口的東西,然後做:

globals().update(imported_things) 
thing1() # function call 

要刪除的進口,你可以做

del thing1 

del globals()['thing1'] 

另一個有用的操作可以做的是reload一個模塊

+0

這個從包中導入模塊。我需要能夠從模塊導入方法和類。 – flashburn

+0

@flashburn更新了我的答案 – smac89

+0

另一個問題。我將如何取消導入它們?有沒有辦法做到這一點? – flashburn