导入彼此 "overload" 的模块,但保留名称空间

Import modules that "overload" one another, but keep namespaces

我有两个由另一位开发人员编写的模块:modulemodule_overload。模块 module_overload 替换了 module 的一个子集。开发人员推荐的导入方式是使用:

from module import *
from module_overload import *

但我想保留名称空间。如果我这样做...

import module
import module_overload as module

...完整的 module 集已丢失,只有 module_overload 的替换子集可用。

如何执行此导入,但保留名称空间?

我不明白哪个开发人员认为这是个好主意,但模块是对象,您可以使用 update:

更新它们的 __dict__

你先导入module_overload:

import module_overload
import module as temp
module_overload.__dict__.update(temp.__dict__)
module = module_overload

大致就是这样。

总收入。