admin管理员组文章数量:1794759
Python 重新加载模块
简述
在进行模块化编程时,经常会遇到这样一种场景:
编写了一个 Python 模块,并用 import my_module 的形式进行导入。当对该模块进行更改后,即使重新导入,其中的任何改变都不会被识别,这使得模块调试变得非常困难。
那么,该如何解决这个问题?
| 版权声明:一去、二三里,未经博主允许不得转载。
模块仅被导入一次出于效率原因(导入必须找到文件,将其编译成字节码,并且运行代码),Python shell 在每次会话中,只对每个模块导入一次。
例如,有一个名为 hello.py 的模块,包含以下代码:
print('Hello, Python!')如果多次导入,会出现什么效果?
>>> import hello Hello, Python! >>> >>> import hello >>> import hello可以看到,代码只执行了一次。也就是说,模块仅被导入了一次。
重新加载模块倘若,更改了已经在 Python shell 中导入的模块,然后重新导入该模块,Python 会认为“我已经导入了该模块,不需要再次读取该文件”,所以更改将无效。
要解决这个问题,有以下几种方式:
PS: 下面主要介绍第 2 种方式 - reload(),其他方式自行尝试。
reload() 是 Python 提供的一种简洁的方式,在不同的 Python 版本中有不同的表现形式:
- 在 Python 2.x 中,reload() 是内置函数。
- 在 Python 3.0 - 3.3 中,可以使用 imp.reload(module)。
- 在 Python 3.4 中,imp 已经被废弃,取而代之的是 importlib。
版权声明:本文标题:Python 重新加载模块 内容由林淑君副主任自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.xiehuijuan.com/baike/1686659069a91608.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论