在这种情况下,“reload”是什么作用呢?

8 浏览
0 Comments

在这种情况下,“reload”是什么作用呢?

这个问题已经在这里有了答案:

如何卸载(重新加载)Python模块?

import utils; reload(utils)
from utils import *

为什么需要加载两次?‘reload’不是内置函数。对吗?

admin 更改状态以发布 2023年5月20日
0
0 Comments

'reload' 在这种情况下做什么?

这取决于 utils 做了什么... 例如,如果导入 utils 有副作用,那么该影响将再次发生。


另请注意,在任何生产代码中使用 reload 绝对是要避免的。主要原因是 reload 存在是为了交互式使用...

  • 加载模块
  • 测试并发现错误
  • 编辑模块
  • 重新加载模块
  • 再次测试
  • ...
0
0 Comments

最好的方法是查看reload文档,其中说到:

  1. Python模块的代码被重新编译,模块级的代码被重新执行,定义了一组与模块字典中名称绑定的新对象。扩展模块的初始化函数不会第二次调用。

  2. 和Python中的所有其他对象一样,在引用计数下降到零后,旧对象才会被回收。

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

  4. 对旧对象的其他引用(例如模块之外的名称)不会被重新绑定为引用新对象,如果需要,必须在每个出现的命名空间中更新它们。

0