import utils; reload(utils)
from utils import *
为什么需要加载两次?'reload'不是内置函数,对吧?
import utils; reload(utils)
from utils import *
查找最佳方法是查看reload
文档,其中写道:
Python模块的代码将被重新编译,模块级别的代码将被重新执行,定义了一组新的对象,这些对象绑定到模块字典中的名称。扩展模块的init函数不会第二次调用。
与Python中的所有其他对象一样,只有在引用计数降至零时,旧对象才会被回收。
模块命名空间中的名称将被更新,指向任何新的或更改的对象。
对于其他对旧对象的引用(例如模块外部的名称),不会被重新绑定以引用新对象,如果需要,则必须在每个出现它们的命名空间中进行更新。
在这种情况下,“reload”是什么意思?
这取决于utils
的操作...例如,如果导入utils
有副作用,则该副作用将再次发生。
reload
都是您想要避免的。 reload
存在的主要原因是为了交互式使用...
utils
是否有任何副作用。 - mgilson