可変量のいわゆる 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 つのサブクラスを混在させて作業インスタンスを作成できる場合もあれば、すべての抽象メソッドを実装するのに時間がかかる場合もあります。