模块导入与重载——导入与重载基础——注意 | 第一部分 开始 —— 第 3 章: 你是如何运行程序的 |《学习 python:强大的面向对象编程(第 5 版)》| python 技术论坛-jiuyou九游娱乐官方
版本差异说明:python 3.x 将 reload 内置函数移动到 imp 标准库模块。它仍然像以前那样重载文件,但为了使用它必须先导入它。在 3.x 中, 运行 import imp 然后使用 imp.reload(m) 或运行如同这里显示的 from imp import reload 然后使用 reload(m)。下一节将讨论 import 和 from 语句,然后在本书后面会更正式地讨论。
如果正在使用 python 2.x, reload 是作为内置函数可用的,所以不需要导入。在python 2.6 和2.7 中, reload 则是两种形式都可用——内置和模块函数——这是为了帮助过渡到 3.x。换句话说,在3.x中重载仍是可用的,但需要一行额外的代码来获取 reload 调用。
3.x中的(将reload)移动(到imp)的部分原因很可能是一些著名的涉及reload 和 from语句的问题,这些问题将在下一章遇到。简而言之,用 from加载的名称不会直接被一次 reload 更新,但用 import 语句访问的名称却会被更新。如果在reload后,名称看起来没有变化,尝试更换为 import 和 module.attribute 名称引用。