如何基于导入模块中的所有类动态创建多基类Python类
动态创建继承多类的Python类需求
我在网上找了很多示例都不符合需求,参考过Stack Overflow相关回答也没达成目标。具体需求如下:
- 有一个包含多个类的
my_forms模块,通过importlib导入后,需动态创建新类,使其继承该模块内所有类 - 新类需合并所有基类的属性
- 新类的
prepare协程方法要依次调用每个基类的prepare方法
以下是我尝试的代码,但无法正确设置基类:
import inspect def create_DynamicClass(): class DynamicClass(BaseClass): pass for form_name, class_name in inspect.getmembers(forms): for i in class_name(): # 此处需添加将所有基类加入DynamicClass的代码 return DynamicClass()
my_forms模块示例如下:
class MyClass1(BaseClass): attr1 = 1 attr2 = 2 @coroutine def prepare(self): # 各类自定义代码 class MyClass2(BaseClass): attr3 = 3 attr4 = 4 @coroutine def prepare(self): # 各类自定义代码 class MyClass3(BaseClass): attr5 = 5 attr6 = 6 @coroutine def prepare(self): # 各类自定义代码
期望的静态实现效果(因模块内类数量不固定,必须动态实现):
class MyResultClass(MyClass1, MyClass2, MyClass3): # 获取所有类的可用属性 @coroutine def prepare(self): yield MyClass1().prepare() yield MyClass2().prepare() yield MyClass3().prepare()
内容的提问来源于stack exchange,提问作者aaa
相关产品推荐
相关产品推荐

