在这种情况下,"重新加载"有什么作用?


import utils; reload(utils)
from utils import *

为什么需要两次加载?"重新加载"不是内置功能。对吗?

找出发现的最佳方法是检查reload文档,该文档说:

  1. python模块的代码被重新编译,并重新执行模块级代码,定义了一组新的对象,这些对象与模块字典中的名称绑定在一起。扩展模块的初始功能未称为第二次。

  2. 与Python中的所有其他对象一样

  3. 模块名称空间中的名称已更新以指向任何新的或更改的对象。

  4. 其他引用对旧对象(例如模块外部的名称)不反弹以参考新对象,并且必须在每个名称空间中更新它们如果需要的话

在这种情况下,"重新加载"有什么作用?

取决于utils的作用...例如,如果导入utils具有副作用,则该效果将再次发生。


还要注意,在任何生产代码中使用reload绝对是您想要避免的。reload存在的主要原因是用于交互式使用...

  • 负载模块
  • 测试并查看错误
  • 编辑模块
  • 重新加载模块
  • 测试
  • ...

相关内容

最新更新