我想做一个函数,从可变数量的所谓的 mixin 类中创建一个新类。我的第一直觉是使用*args
...
>>> def mixins(*args):
class Foo(*args):
SyntaxError: invalid syntax
......但没有走很远......因为那不起作用,我尝试了这个,这似乎有效:
>>> def mixins(*args):
class Foo(args[0]):
pass
for arg in args[1:]:
class Foo(Foo, arg):
pass
return Foo
问题
还有其他方法可以解决这个问题吗?
动机
我创建了一个具有许多抽象方法的抽象基类。我有几种类型的子类,每个子类都实现了一些需要的抽象方法,但不是全部。有时我可以通过混合 2 个子类来创建一个工作实例,有时需要更多的时间来实现所有的抽象方法。