importlib模块与__import__详解
Posted li-li
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了importlib模块与__import__详解相关的知识,希望对你有一定的参考价值。
importlib模块与__import__都可以通过过字符串来导入另外一个模块,但在用法上和本质上都有很大的不同。
通过下面示例说明,有如下一个工程目录:
name = ‘test‘ def getName(): print(name)
name = ‘demo‘ def getName(): print(name)
一、importlib模块
import importlib mName = ‘lib.test‘ module = importlib.import_module(mName) module.getName()
importlib是python的一个标准库,通过导入importlib,调用import_module()方法,传入用户想要获取的模块对应的路径字符串,即可获取一个模块module,module可以调用这个test模块下的所有属性和方法。
运行结果如下:
二、__import__
__import__是python的一个内置方法,直接调用__import__()即可获取一个模块。
mName = ‘demo‘ module = __import__(mName) module.getName()
运行结果如下:
此时调用的是同目录下的demo模块,可顺利地获取这个模块,那么当不再同一个目录下呢?
mName = ‘lib.test‘ module = __import__(mName) module.getName()
运行结果如下:
出错提示表示,当前的模块‘lib‘没有getName()这个方法,因此没有正确获取到test模块。
mName = ‘lib.test‘ module = __import__(mName, fromlist=[‘test‘]) module.getName()
运行结果如下:
可见当加上__import__方法加上参数fromlist即可正确获取。
有关importlib模块其他说明详见官方文档:https://docs.python.org/3.7/library/importlib.html?highlight=importlib#module-importlib.abc
以上是关于importlib模块与__import__详解的主要内容,如果未能解决你的问题,请参考以下文章
动态导入模块:__import__importlib动态导入的使用场景