继承自列表中解压缩的类

ara*_*lar 5 python oop inheritance

假设我在Python(A, B, C)中有一个类对象列表,我想在构建类时继承它们D,例如:

class A(object):
    pass

class B(object):
    pass

class C(object):
    pass


classes = [A, B, C]

class D(*classes):
    pass
Run Code Online (Sandbox Code Playgroud)

不幸的是,当我这样做时,我遇到语法错误.除了通过写作,我还能怎样完成它class D(A, B, C)?(在我的实际场景中有三个以上的课程)

beh*_*uri 5

您可以使用type关键字动态创建类,如下所示:

>>> classes = [A, B, C]
>>> D = type('D', tuple(classes), {})
>>> type(D)
<class 'type'>
>>> D.__bases__
(<class '__main__.A'>, <class '__main__.B'>, <class '__main__.C'>)
Run Code Online (Sandbox Code Playgroud)

有关更多示例,请参阅15247075.