zoukankan      html  css  js  c++  java
  • python3.6.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注释,重新测试

  • 相关阅读:
    Git命令家底儿及Git数据通信原理详解
    git SSH keys
    TRIM函数
    c# List AddRange
    vtk第一个程序
    MFC CStatic类动态创建
    前端基础之BOM和DOM
    JavaScript
    前端CSS属性相关
    前端CSS
  • 原文地址:https://www.cnblogs.com/pyyu/p/8493670.html
Copyright © 2011-2022 走看看