是的,您可以两次加载一个模块:
import mod
import sys
del sys.modules["mod"]
import mod as mod2
现在,mod
和mod2
是同一模块的两个实例。
也就是说,我怀疑这是否有用。改用类-最终将减少工作量。
:在Python 2.x中,您还可以使用以下代码“手动”导入模块:
import imp
def my_import(name):
file, pathname, description = imp.find_module(name)
code = compile(file.read(), pathname, "exec", dont_inherit=True)
file.close()
module = imp.new_module(name)
exec code in module.__dict__
return module
此解决方案可能比第一个更灵活。由于(部分地)滚动了自己的导入机制,因此您不再需要“与之抗衡”。(注意,此实现不设置__file__
,__path__
和__package__
模块的属性- 如果这些都需要,只是添加代码来设置它们)