擅长:python、mysql、java
<p>在<code>sys.modules</code>中有一个模块的全局列表(事实上,这是一个dict)。如果要重新加载全局命名空间中的每个模块,请尝试以下操作:</p>
<pre><code>import sys,imp
def reloader(globaldict):
reloadkeys = set(globaldict)&set(sys.modules)
for key in reloadkeys:
if imp.is_builtin(key) == 0:
reload(sys.modules[key])
reloader(locals())
</code></pre>
<p>或者,如果您想自己跟踪,只需创建自己的模块列表<code>mymodules</code>,并在导入后将每个模块附加到其中。然后可以使用循环来重新加载每个循环。在</p>
<hr/>
<p>以下是一种避免在不检查<code>globals</code>的情况下重新加载内置函数的方法:</p>
^{pr2}$
<hr/>
<p>另外,您可以在启动解释器后立即捕获<code>sys.modules</code>的状态,并使用类似的布尔操作从重新加载中排除这些状态。在</p>