python 动态加载

动态加载模块:

方式1:系统函数__import__()

__import__(name, globals=None, locals=None, fromlist=(), level=0)

name[必填] - 模块名称
globals - 全局变量集合,默认为None,一般不用设置。如果设置的话,常用globals()。
locals - 局部变量集合,默认为None,一般不用设置。如果设置的话,常用locals()。
fromlist - 是否导入子模块,看上去是导入模块的列表。但实际上目前它只是一个判断条件,只要设置为非空的值,且模块名称是带有子模块的,将导入子模块。例如:sys.path。当不设置时,返回sys,如果设置为非空值,则返回ntpath(path模块)。
level - 绝对或者相对导入。

返回值

返回导入的模块,一般会赋值给变量,以便后期使用。

eg:

module_name = __import__(__name__, fromlist=True)
getattr(module_name, class_name)()


方式2:imp, importlib 模块


方式3:exec 函数

posted @ 2020-03-22 15:19  牛牛码代码  阅读(510)  评论(0编辑  收藏  举报