导入的 module.submodule 个名称空间相互干扰

imported module.submodule namespaces interfering with eachother

所以我非常深入地制作自定义 job/process 自定义管理器模块,当我开始集成它时,我遇到了一个我以前从未见过的与模块和命名空间的交互。

代码胜于雄辩:

所以有两个略有不同的脚本:

测试 1:

import jobManager

jobManager.jobMap = {'test1':'test123'}

和测试 2:

import jobManager

jobManager.jobMap = {'test2':'test222'}

顶级脚本:

import test1
import test2

print(test1.jobManager.jobMap)
print(test2.jobManager.jobMap)

所以当我运行它打印的顶级脚本时:

{'test2':'test222'}
{'test2':'test222'}

但我的预期输出是:

{'test1':'test123'}
{'test2':'test222'}

这只是 test1.jobManager 和 test2.jobManager 实际上是同一个命名空间的情况吗?有没有办法让它们分开?

Is this just a case where test1.jobManager and test2.jobManager are actually the same namespace?

是的。

Is there a way to keep them separate?

不创建另一个模块就不行。