python 重载_python模块重载的五种方法
环境准备
新建一个 foo 文件夹,其下包含一个 bar.py 文件
bar.py 的内容非常简单,只写了个 print 语句
只要 bar.py 被导入一次,就被执行一次 print
禁止重复导入
由于有 sys.modules 的存在,当你导入一个已导入的模块时,实际上是没有效果的。
重复导入方法一
如果你使用的 python2(记得前面在 foo 文件夹下加一个__init__.py
),有一个 reload 的方法可以直接使用
如果你使用的 python3 那方法就多了,详细请看下面
重复导入方法二
如果你使用 Python3.0 -> 3.3,那么可以使用 imp.reload 方法
但是这个方法在 Python 3.4+,就不推荐使用了
重复导入方法三
如果你使用的 Python 3.4+,请使用 importlib.reload 方法
重复导入方法四
如果你对包的加载器有所了解
还可以使用下面的方法
重复导入方法五
既然影响我们重复导入的是 sys.modules,那我们只要将已导入的包从其中移除是不是就好了呢?
有没有发现在前面的例子里我使用的都是 from foo import bar,在这个例子里,却使用 import foo.bar,这是为什么呢?
这是因为如果你使用 from foo import bar 这种方式,想使用移除 sys.modules 来重载模块这种方法是失效的。
这应该算是一个小坑,不知道的人,会掉入坑中爬不出来。
转自:python模块重载的五种方法-侵删
python 重载_python模块重载的五种方法相关推荐
- python 条形图填充疏密_教你利用Python玩转histogram直方图的五种方法
直方图 直方图是一个可以快速展示数据概率分布的工具,直观易于理解,并深受数据爱好者的喜爱.大家平时可能见到最多就是 matplotlib,seaborn 等高级封装的库包,类似以下这样的绘图. 本篇博 ...
- python 直方图的绘制方法全解_教你利用Python玩转histogram直方图的五种方法
直方图 直方图是一个可以快速展示数据概率分布的工具,直观易于理解,并深受数据爱好者的喜爱.大家平时可能见到最多就是 matplotlib,seaborn 等高级封装的库包,类似以下这样的绘图. 本篇博 ...
- python智能模块_Python模块常用的几种安装方式
Python模块安装方法 一.方法1: 单文件模块 直接把文件拷贝到 $python_dir/Lib 二.方法2: 多文件模块,带setup.py 下载模块包,进行解压,进入模块文件夹,执行: pyt ...
- python函数可以提高代码执行速度吗_Python代码运行速度慢?这五种方法很管用
对于Python很多人还是比较了解的,虽然说Python有很多优势但同样具有劣势,Python最大的劣势就是运行效率慢,那么如何提高Python代码运行速度呢?这五种方法很管用. 1.PyPy:在选择 ...
- python 获取csv的列数_Python读取excel的两种方法
excel是什么 Microsoft Excel是一个使用非常广泛的电子表格程序.它的用户友好性和吸引人的功能使其成为数据科学中常用的工具.对于excel来说,整个excel文件称为工作簿,工作簿中的 ...
- Python实现将内容写入文件的五种方法总结
本篇带你详细看一下python将内容写入文件的方法以及细节,主要包括write()方法.writelines() 方法.print() 函数.使用 csv 模块.使用 json 模块,需要的可以参考一 ...
- python运行时很卡-Python代码运行速度慢?这五种方法很管用
对于Python很多人还是比较了解的,虽然说Python有很多优势但同样具有劣势,Python最大的劣势就是运行效率慢,那么如何提高Python代码运行速度呢?这五种方法很管用. 1.PyPy:在选择 ...
- python压缩包怎么安装-详解python解压压缩包的五种方法
这里讨论使用Python解压例如以下五种压缩文件: .gz .tar .tgz .zip .rar 简单介绍 gz: 即gzip.通常仅仅能压缩一个文件.与tar结合起来就能够实现先打包,再压缩. t ...
- Python语言学习:基于python五种方法实现使用某函数名【func_01】的字符串格式('func_01')来调用该函数【func_01】执行功能
Python语言学习:基于python五种方法实现使用某函数名[func_01]的字符串格式('func_01')来调用该函数[func_01]执行功能 目录 问题提出 代码五种设计思路 T1方法:e ...
最新文章
- Makefile的伪目标
- Test Article
- java构造方法与重载牛肉粉,IT兄弟连Java基础视频教程
- 创业者都有一个共同的特质,他想做事,就立刻做
- python学习之装饰器---转
- 推荐iOS模拟器截图工具iOS-Simulator Cropper
- 基本数据类型与引用数据类型
- LeetCode5 最长回文子串
- 锁 公平 非公平_推荐引擎也需要公平!
- ibm java虚拟机_IBM java VM 最新版的java虚拟机下载及安装的一点说明
- leapftp,leapftp中文教程加图解
- 【DirectX】D3D中基本图形绘制函数形参意义(总结)
- android模拟器 vt,逍遥安卓模拟器怎么开启VT模式 VT虚拟化设置方法
- ddl是什么意思网络语_ddl是什么意思(网络语ddl是什么梗)
- Swarm and shipyard
- 【翻译】CSPNet: A New Backbone that can Enhance Learning Capability of CNN
- 马尔科夫链蒙特卡洛(MCMC)
- 虚幻UE4/5中如何使用材质节点旋转贴图
- 前端食堂技术周刊第 82 期:Vue3.3、Google I/O、CSS In 2023、Remix Conf 2023、Rollup 中文文档、React 中文文档
- Longhorn Reloaded M1
热门文章
- java项目的逻辑结构
- LaTex in Markdown
- Ckeditor通过Ajax更新数据
- Oracle RAC 常用维护工具和命令
- Java 分页之最简单的算法
- Arduino教程资料汇总(8月22日悄悄跟新了一下)
- PHP的优点和缺点分别是什么,CSS的优点和缺点分别是什么
- java date 加一天_Java 8中的时间JAVA成长之路
- icp mysql_MySQL · 特性分析 · Index Condition Pushdown (ICP)
- python实现socket编程,客户端和服务端之间互相对话(二)