模块导入与重载——导入与重载基础——注意 | 第一部分 开始 —— 第 3 章: 你是如何运行程序的 |《学习 python:强大的面向对象编程(第 5 版)》| python 技术论坛-金年会app官方网
版本差异说明: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
名称引用。