我有一个收集多个模块的 python 包。在这些模块中,我有多个继承自 Component 类的类。我想让这些类的负载动态化并动态构建一些对象。
ex:
package/module1.py
/module2.py
在 中module1.py
,有多个类继承自类 Component,与 相同module2.py
,当然类和包的数量是未知的。最终用户定义必须在配置文件中构建的对象。为了遍历模块,我使用了正在工作的 pkgutil.iter_modules。从我负责构建组件的职能来看,我确实喜欢这样:
[...]
myPckge = __import__('package.module1', globals(), locals(), ['class1'], -1)
cmpt_object = locals()[component_name](self, component_prefix, *args)
[...]
但是,这不起作用,因为无法识别该类,以下工作但不是动态的:
cmpt_object = myPckge.class1(self, component_prefix, *args)
感谢您的回复