10.10 通过字符串名导入模块

    使用importlib.import_module()函数来手动导入名字为字符串给出的一个模块或者包的一部分。举个例子:

    import_module只是简单地执行和import相同的步骤,但是返回生成的模块对象。你只需要将其存储在一个变量,然后像正常的模块一样使用。

    1. # Same as 'from . import b'

    使用import_module()手动导入模块的问题通常出现在以某种方式编写修改或覆盖模块的代码时候。例如,也许你正在执行某种自定义导入机制,需要通过名称来加载一个模块,通过补丁加载代码。

    在旧的代码,有时你会看到用于导入的内建函数import()。尽管它能工作,但是importlib.import_module() 通常更容易使用。

    原文: