仅导入模块的某些部分,但将这些部分列为字符串

时间:2016-11-08 00:53:30

标签: python python-2.7 module python-import

此问题标记为duplicate。但是,duplicate问题涉及模块,而我的问题是询问如何导入模块的部分。

我知道我可以使用import from mymodule import myfunction模块的某些部分。import_things = ['thing1', 'thing2', 'thing2'] from mymodule import import_things 。如果想要导入几个东西,但我需要将它们列为字符串。例如:

if

我确实问this question,但看起来我需要使用上面的技巧(如果有)我的代码。

感谢任何帮助。

1 个答案:

答案 0 :(得分: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模块