我有一个生成类的类工厂 F。除了名称之外,它不接受任何参数。我希望能够包装这个方法并像这样使用它:
from myproject.myfactory.virtualmodule import Foo
“myfactory”是项目中的一个真实模块,但我希望 virtualmodule 成为一个伪装成模块的东西。
每当我从 virtualmodule 导入一些东西时,我希望它使用我的工厂方法构建一个新类,并让它看起来好像是导入的。
这可以做到吗?是否有一种模式可以让我将类工厂包装为模块?
谢谢!
--
UPDATE0:为什么我需要这个?它实际上是测试将在网格上运行的进程,该网格要求所有类都应该是可导入的。
自动生成类的一个实例将在我的 PC 上序列化,然后在每个网格节点上反序列化。如果无法在网格节点上导入类,则反序列化将失败。
如果我劫持导入机制作为创建测试类的接口,那么我肯定知道我可以在我的 PC 上导入的任何东西都可以在网格上重新创建完全相同。这将满足我的测试要求。