Importlib模块与__import__都可以通过过字符串来导入另外一个模块,但在用法上和本质上都有很大的不同。

以一个例子为证:

以下为我的工程目录结构:

lib/test.py:

name = "Jack" 
 
def getName(): 
print(name) 
return name

demo.py:

name = "Amy" 
 
def getName(): 
print(name) 
return name

Importlib模块的例子:

testImportlib.py:

import importlib 
 
mName = "lib.test" 
module = importlib.import_module(mName) 
module.getName()

Importlib是python的一个库,通过导入importlib,调用import_module()方法,传入用户想要获取的模块对应的路径字符串,即可获取一个,模块module,module可以调用这个test模块下的所有属性和方法。

运行截图:

__import__的例子:__import__是python的一个内置方法,直接调用__import__()即可获取一个模块.

testImport.py:

mName = "demo" 
 
module = __import__(mName) 
module.getName()

此时调用的是相同目录下的demo模块,可顺利地获取这个模块,那么当不再同一个目录下呢?

修改testImport.py:

mName = "lib.test" 
 
module = __import__(mName) 
module.getName()

此时的运行结果为:

出错提示为,当前的模块'lib'没有getName()这个方法,因此没有正确获取到test模块。

继续修改此文件:

mName = "lib.test" 
 
module = __import__(mName,fromlist = ('test',)) 
module.getName()

运行结果为:

当加上fromlist属性即可正确获取。

转载于:https://www.cnblogs.com/suguangti/p/11043296.html


评论关闭
IT源码网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!