Python动态导入模块:__import__、importlib、动态导入的使用场景实例分析


Posted in Python onMarch 30, 2020

本文实例讲述了Python动态导入模块:__import__、importlib、动态导入的使用场景。分享给大家供大家参考,具体如下:

相关内容:

  • __import__
  • importlib
  • 动态导入的使用场景

首发时间:2018-02-23 16:06


__import__:

功能:

  • 是一个函数,可以在需要的时候动态导入模块

使用:

  • __import__(模块名)
  • 但对于多级目录,只会导入第一级Python动态导入模块:__import__、importlib、动态导入的使用场景实例分析
  • 目录结构:Python动态导入模块:__import__、importlib、动态导入的使用场景实例分析
  • Python动态导入模块:__import__、importlib、动态导入的使用场景实例分析Python动态导入模块:__import__、importlib、动态导入的使用场景实例分析
mo1=__import__("des")
mo2=__import__("child.child")
mo3=__import__("child")

print(mo1,mo2,mo3)#mo3与mo2相同

#同级目录使用模块对象来调用
mo1.B()
mo1.fun2()

#对于目录下的,动态导入只会导入第一级目录
mo2.child.A()#虽然没有具体定义类体,但无错就是成功
mo2.child.fun1()
mo3.child.fun1()

importlib:

介绍:

  • 是一个模块,可以进行动态导入模块

用法:

  • importlib.import_module("模块名")
import importlib
mo1= importlib.import_module('des')
mo2= importlib.import_module('child.child')
print(mo1,mo2)#mo2直接到child.child

des_B= mo1.B()
mo1.fun2()

mo2.fun1()

动态导入模块的使用场景:

  • 动态切换模块
  • 使用反射判断是否有对应类、方法,无则设置
import importlib
mo3= importlib.import_module('child')
def func4():
  print(" run in func4")

if hasattr(mo3,"child1"):
  print("yes")
  c=getattr(mo3,"child")
else: #没有则设置
  setattr(mo3,"func4",func4)

mo3.func4()
  • 其他。。。

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
Python实现返回数组中第i小元素的方法示例
Dec 04 Python
Python切片操作实例分析
Mar 16 Python
python对list中的每个元素进行某种操作的方法
Jun 29 Python
Python用字典构建多级菜单功能
Jul 11 Python
python从zip中删除指定后缀文件(推荐)
Dec 05 Python
pytorch 模拟关系拟合——回归实例
Jan 14 Python
Python 没有main函数的原因
Jul 10 Python
Python如何设置指定窗口为前台活动窗口
Aug 12 Python
安装Anaconda3及使用Jupyter的方法
Oct 27 Python
分享一枚pycharm激活码适用所有pycharm版本我的pycharm2020.2.3激活成功
Nov 20 Python
Django数据统计功能count()的使用
Nov 30 Python
python识别围棋定位棋盘位置
Jul 26 Python
Django 删除upload_to文件的步骤
Mar 30 #Python
python with语句的原理与用法详解
Mar 30 #Python
对django 2.x版本中models.ForeignKey()外键说明介绍
Mar 30 #Python
Python进程的通信Queue、Pipe实例分析
Mar 30 #Python
基于Django OneToOneField和ForeignKey的区别详解
Mar 30 #Python
django 扩展user用户字段inlines方式
Mar 30 #Python
Python3标准库之threading进程中管理并发操作方法
Mar 30 #Python
You might like
php基础知识:控制结构
2006/12/13 PHP
PHP获取url的函数代码
2011/08/02 PHP
PHP投票系统防刷票判断流程分析
2012/02/04 PHP
PHP依赖倒置(Dependency Injection)代码实例
2014/10/11 PHP
PHP中判断文件存在使用is_file还是file_exists?
2015/04/03 PHP
php 参数过滤、数据过滤详解
2015/10/26 PHP
YII2框架中添加自定义模块的方法实例分析
2020/03/18 PHP
JavaScript 字符串乘法
2009/08/20 Javascript
按钮JS复制文本框和表格的代码
2011/04/01 Javascript
js实现网页右上角滑出会自动消失大幅广告的方法
2015/02/27 Javascript
JavaScript如何调试有哪些建议和技巧附五款有用的调试工具
2015/10/28 Javascript
JavaScript实战之带收放动画效果的导航菜单
2016/08/16 Javascript
Web前端开发之水印、图片验证码
2016/11/27 Javascript
Servlet实现文件上传,可多文件上传示例
2016/12/05 Javascript
jQuery设计思想
2017/03/07 Javascript
前端开发之CSS原理详解
2017/03/11 Javascript
JS实现css hover操作的方法示例
2017/04/07 Javascript
JavaScript 通过Ajax 动态加载CheckBox复选框
2017/08/31 Javascript
Vue+Node实现商品列表的分页、排序、筛选,添加购物车功能详解
2019/12/07 Javascript
vue+element table表格实现动态列筛选的示例代码
2021/01/14 Vue.js
JavaScript 判断浏览器是否是IE
2021/02/19 Javascript
python中__call__方法示例分析
2014/10/11 Python
基于Python __dict__与dir()的区别详解
2017/10/30 Python
python http接口自动化脚本详解
2018/01/02 Python
Python实现图片尺寸缩放脚本
2018/03/10 Python
python判断输入日期为第几天的实例
2018/11/13 Python
python+pyqt5编写md5生成器
2019/03/18 Python
使用tensorflow实现矩阵分解方式
2020/02/07 Python
python实现QQ邮箱发送邮件
2020/03/06 Python
个人求职信范文
2014/05/24 职场文书
资料员岗位职责范本
2015/04/13 职场文书
团支部书记竞选稿
2015/11/21 职场文书
Nginx中break与last的区别详析
2021/03/31 Servers
利用JavaScript写一个简单计算器
2021/11/27 Javascript
恶魔之树最顶端的三颗果实 震震果实上榜,第一可以制造岩浆
2022/03/18 日漫
Windows下载并安装MySQL8.0.x 版本的完整教程
2022/04/10 MySQL