0.说明

因为正常情况下使用reload重载模块时只是重载顶层模块,对于模块内部的import语句并不会执行重载,也就是说,reload执行的重载只是针对顶层的,即top level only。

有必要写一个过渡性模块重载的函数。


1.过渡性模块重载

下面的代码来自《Python学习手册》第四版P605,可以完美地实现这个功能:

"""
reloadall.py: transitively reload nested modules
"""import types
from imp import reloaddef status(module):print('reloading ' + module.__name__)def transitive_reload(module, visited):if not module in visited:status(module)reload(module)visited[module] = Nonefor attrobj in module.__dict__.values():if type(attrobj) == types.ModuleType:transitive_reload(attrobj, visited)def reload_all(*args):visited = {}for arg in args:if type(arg) == types.ModuleType:transitive_reload(arg, visited)if __name__ == '__main__':import reloadallreload_all(reloadall)

2.作用

如果需要交互式地测试较大型的系统时,过渡性重载就显得很有用了,可以帮我们节省很多时间。

Python过渡性模块重载(递归重载模块)相关推荐

  1. Python(10)文件操作(IO 技术)、OS模块、递归

    文章目录 文件操作(IO 技术) 文本文件和二进制文件 文件操作相关模块概述 创建文件对象 open() 基本的文件写入操作 常用编码介绍 ASCII ISO8859-1 GB2312 GBK GB1 ...

  2. Python标准库笔记(9) — functools模块

    functools 作用于函数的函数 functools 模块提供用于调整或扩展函数和其他可调用对象的工具,而无需完全重写它们. 装饰器 partial 类是 functools 模块提供的主要工具, ...

  3. python必学的模块_Python常用的模块

    模块和包 1.1模块介绍模块定义:一系列功能的集合体 模块使用: import导入模块 或者 from ... import... 导入模块 模块分类:内置模块 自定义模块 第三方模块 模块加载顺序: ...

  4. 细数python标准库中低调的模块

    有没有遇到过这种情况,在网络上搜索如何使用Python进行某种操作,最终找到一个第三方库,直到后来发现标准库中包含的模块或多或少都可以满足你的需求.这种情况并不罕见, 整理了一些python标准库中鲜 ...

  5. python模块总结_Python常用模块资料总结和归纳

    Python模块是什么? 一个完整大型的python程序是由模块和包的形式组织起来的,可见模块在python中的重要性.模块是一种组织型式,它许多有关联(关系)的代码组织放到单独的独立文件中.简单的说 ...

  6. python的文件操作、模块操作、os模块、time、datatime模块以及模块的制作

    Day12新手小白学python 第十二节 python的文件操作.模块操作.os模块.time.datatime模块以及模块的制作 目录 Day12新手小白学python 前言 一.文件打开关闭 二 ...

  7. 十年测试经验的阿里p10讲解python初阶:函数和模块 python全栈自动化测试系类4-2

    还是老规矩,大家可能对凡哥不是很了解这里先和大家来个自我介绍 凡哥我已经有着十二年互联网自动化测试和测试开发工程师,拥有丰富的自动化测试平台及测试开发经验,擅长接口测试.Python自动化全栈,测试开 ...

  8. python主函数调用格式_Python的模块与函数

    一.概述Python的程序由包.模块和函数组成. 函数是一段可重用的有名称的代码.通过输入的参数值,返回需要的结果,并可存储在文件中供以后使用.几乎任何Python代码都可放在函数中.Python为函 ...

  9. Python初级第2课——os模块(只读课堂)

    欢迎来到"只读课堂"! 这个模块和文件操作一样,使用它,可以与我们当前的系统进行交互. OS模块简单介绍 os模块主要有以下几种:posix(适用于unix操作系统) nt(win ...

最新文章

  1. deep_sort_face
  2. linux配置chrony时间同步
  3. 云栖大会|感受万物数字化,体验千行视频化
  4. 36氪联合阿里云,共同研制中小企业发展「催化剂」
  5. Flutter 一个优美的用户体验的登录页面 抖动提示 文本提示
  6. 2月8日见!三星Galaxy S22系列新增樱花粉配色
  7. js中数组(Array)的排序(sort)注意事项
  8. PMP考试有哪些技巧?(技巧+资料分享)
  9. python倒三角代码_vb代码输出倒三角形 python倒三角代码
  10. Python编程之二维码生成
  11. cu.html 光猫 管理密码,中兴ZXHN F607联通光猫管理员账号密码获取方法
  12. 2继电器控制单相电机正反转
  13. C语言 归并排序算法
  14. PcShare2007 暗桩
  15. 台式计算机的安规测试要求,美国EPA发布能源之星计算机规范V8.0版
  16. github snap android,轻量级的viewpager指示器
  17. 安全沙箱技术赋能企业转型,提效200%!
  18. 李佳琦月赚80万:这个时代,你再努力也拼不过这种人
  19. R语言中 layout函数
  20. c语言输入数字输出字母代码,c语言输入数字输出字母代码求解释

热门文章

  1. C六:指针可以比较大小
  2. AGG第二十课 agg::ellipse 方法approximation_scale()
  3. iOS 版 Skype支持群组语音聊天
  4. 【ASM 翻译系列第二弹:ASM 12C 版本新特性】
  5. 绝不能错过的10款最新OpenStack网络运维 监控工具
  6. 创建租房网House脚本
  7. 【BZOJ3196】Tyvj 1730 二逼平衡树
  8. Windows 10 下的OpenVINO Pycharm+Anaconda开发环境配置
  9. python求向量与x轴的夹角_2020届石家庄高考模拟题,参数方程解决向量问题
  10. 【MySQL】MySQL开发注意事项与SQL性能优化步骤