import utils; reload(utils)
from utils import *
为什么需要两次加载?"重新加载"不是内置功能。对吗?
找出发现的最佳方法是检查reload
文档,该文档说:
python模块的代码被重新编译,并重新执行模块级代码,定义了一组新的对象,这些对象与模块字典中的名称绑定在一起。扩展模块的初始功能未称为第二次。
与Python中的所有其他对象一样
模块名称空间中的名称已更新以指向任何新的或更改的对象。
其他引用对旧对象(例如模块外部的名称)不反弹以参考新对象,并且必须在每个名称空间中更新它们如果需要的话。
在这种情况下,"重新加载"有什么作用?
取决于utils
的作用...例如,如果导入utils
具有副作用,则该效果将再次发生。
还要注意,在任何生产代码中使用reload
绝对是您想要避免的。reload
存在的主要原因是用于交互式使用...
- 负载模块
- 测试并查看错误
- 编辑模块
- 重新加载模块
- 测试
- ...