我有一個收集多個模塊的python包。在這些模塊中,我有一個Component類的多個類。我想使這些類的負載變爲動態的,並動態地構建一些對象。動態類導入和對象構建
ex:
package/module1.py
/module2.py
在
module1.py
,存在多個類從類元器件,與module2.py
相同,類當然數量和包未知heriting。最終用戶定義哪個對象必須在配置文件中構建。爲了通過模塊,我使用正在工作的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)
感謝您的回覆