Python importlib模块重载使用方法详解

作者:py鱼 时间:2021-02-28 18:12:21 

模块介绍

Python提供了importlib包作为标准库的一部分。目的就是提供Python中import语句的实现(以及__import__函数)。另外,importlib允许程序员创建他们自定义的对象,可用于引入过程(也称为importer)。

什么是imp?

另外有一个叫做imp的模块,它提供给Python import语句机制的接口。这个模块在Python 3.4中被否决,目的就是为了只使用importlib。

了解:模块的重载

考虑到性能的原因,每个模块只被导入一次,放入字典sys.module中,如果你改变了模块的内容,你必须重启程序,python不支持重新加载或卸载之前导入的模块,

有的同学可能会想到直接从sys.module中删除一个模块不就可以卸载了吗,注意了,你删了sys.module中的模块对象仍然可能被其他程序的组件所引用,因而不会被清楚。

特别的对于我们引用了这个模块中的一个类,用这个类产生了很多对象,因而这些对象都有关于这个模块的引用。

如果只是你想交互测试的一个模块,使用 importlib.reload(), e.g. import importlib; importlib.reload(modulename),这只能用于测试环境。

例子

aa.py


def func1():
 print('func1')

test.py


import time,importlib
import aa
time.sleep(10)
# importlib.reload(aa) 用于模块重新加载
aa.func1()

在10秒的等待时间里,修改aa.py中func1的内容,等待test.py的结果。

打开importlib注释,重新测试

来源:https://www.cnblogs.com/pyyu/p/8493670.html

标签:Python,importlib,模块,重载
0
投稿

猜你喜欢

  • 详解Python做一个名片管理系统

    2021-03-17 05:56:17
  • Python PaddlePaddle机器学习之求解线性模型

    2023-04-19 08:35:14
  • opencv实现简单人脸识别

    2021-08-26 07:49:06
  • Python 短视频爬虫教程

    2022-02-13 00:17:33
  • python区块链地址的简版实现

    2021-04-02 14:04:21
  • Keras函数式(functional)API的使用方式

    2023-09-19 05:52:15
  • 使用anaconda的pip安装第三方python包的操作步骤

    2022-11-20 04:05:22
  • python简单验证码识别的实现过程

    2021-09-12 12:40:55
  • Mac OS下PHP环境搭建及PHP操作MySQL常用方法小结

    2024-05-08 10:16:31
  • 解决py2exe打包后,总是多显示一个DOS黑色窗口的问题

    2022-05-22 21:51:51
  • python @classmethod 的使用场合详解

    2023-08-02 20:50:35
  • 详解vue3.0 的 Composition API 的一种使用方法

    2024-04-28 09:23:48
  • 求某数以内的所有质数的js算法

    2008-01-06 15:49:00
  • MySQL 请选择合适的列

    2024-01-23 05:33:31
  • python绘制带有色块的折线图

    2022-08-11 07:01:58
  • 如何把Oracle 数据库从 RAC 集群迁移到单机环境

    2024-01-28 06:29:05
  • Python统计词频并绘制图片(附完整代码)

    2022-01-01 09:28:24
  • 浅谈pytorch中torch.max和F.softmax函数的维度解释

    2023-01-07 15:08:01
  • Node.js中Bootstrap-table的两种分页的实现方法

    2024-05-11 10:58:21
  • 正确理解SQL Server四类数据仓库建模方法

    2008-12-23 15:20:00
  • asp之家 网络编程 m.aspxhome.com