Importlib模块与__import__都可以通过过字符串来导入另外一个模块,但在用法上和本质上都有很大的不同。 以一个例子为证: 以下为我的工程目录结构: lib/test.py: name = "Jack"
def getName():
print(name)
return name demo.py: name = "Amy"
def getName():
print(name)
return name 相关推荐:《Python视频教程》 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属性即可正确获取。 |