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属性即可正确获取。

最新文章

  1. hdu 5382 GCD?LCM!
  2. 地图编辑器V3
  3. cmd 窗口配置mysql数据库
  4. 【leetcode❤python】 234. Palindrome Linked List
  5. Android--调用系统的DownLoadManager去下载文件
  6. JavaScript高级程序设计(第三版)第二章 在HTML中使用JavaScript
  7. javascript typeof 和 constructor比较
  8. noi 7219:复杂的整数划分问题
  9. mac 电脑配置cordova
  10. centos7 安装 pyspider 出现的一系列问题及解决方案集合
  11. GDB程序调试
  12. HTTP知识点【总结篇】
  13. shutil.copy()、os.walk()、os.rename()实例
  14. 数据库和linux对大小写的区分
  15. Python字符串格式化 (%操作符)
  16. LVM(逻辑卷管理)从0到实战
  17. MySQL的查询语句
  18. DHCP全局配置文件解析
  19. oracle11g数据库升级数据库升级
  20. C语言lseek()函数:移动文件的读写位置

热门文章

  1. 给mysql默认root用户设置密码
  2. C#基础之方法
  3. flask_之URL
  4. A.走方格
  5. 06.Javascript——入门this的用法(难点)
  6. Ubuntu 解决E: 无法获得锁 /var/lib/dpkg/lock - open (11: 资源暂时不可用)
  7. .net core API第一次试水
  8. HTML5与PHP的比较
  9. Javascript的一些经验总结
  10. 基本编程题 --python