擅长:python、mysql、java
<p>因为这只是为交互式口译员准备的,所以我不认为:</p>
<pre><code>def my_reload(mod, name):
reload(mod)
globals()[name] = getattr(mod, name)
myreload(somemodule, "some_function")
</code></pre>
<p>太可怕了。这只需像normal一样重新加载模块,然后将指向旧对象的名称重新绑定到新对象。这应该适用于<code>reload</code>开始工作的所有实例。或者,您可以对其进行编程,使其获得实际对象并使用其<code>__name__</code>属性获得名称。函数、类和模块都有一个<code>__name__</code>属性,但是像模块级字典这样的东西就没有了,所以它就没有那么灵活了。在</p>
<p>它不会替换对除全局对象以外的对象的引用,但<code>reload</code>也不会,即使您最初是用虚线名称访问它的。一旦一个对象的引用是松散的,你就无能为力了。在</p>