Bootstrap
本文主要介绍通过__import__,动态导入Python模块,模块名字存储在字符串变量中,可以动态修改。

1、__import __(name,globals = None,locals = None,fromlist =(),level = 0)

该函数导入模块name,实际上是使用给定的globalslocals变量来决定如何在一个包上下文中解析name。fromlist给出对象或子模块名,即应该根据给定名称而导入的模块名。标准的启用中根本不会使用它的locals 参数,并且它的globals只是用来决定import语句的包上下文。

level指定是否使用绝对或相对导入,0(默认)表示只执行绝对导入,level正值表示需要搜索调用模块目录相关的父目录的数量。

当name变量是package.module形式时,通常返回顶层包(模块名上询至第一个点),而不是由name命名的模块。然而,当给定非空fromlist参数时,都会返回name命名的模块。

函数功能用于动态的导入模块,主要用于反射或者延迟加载模块。

官方文档:https://docs.python.org/3/library/functions.html#__import__

2、利用__import__导入模块

>>> moduleNames = ['sys', 'os', 're', 'unittest'] 
>>> moduleNames
['sys', 'os', 're', 'unittest']
>>> modules = map(__import__, moduleNames)