Pythonを使用super()
してメソッドチェーンを実行する場合は、次のように独自のクラスを明示的に指定する必要があります。
class MyDecorator(Decorator):
def decorate(self):
super(MyDecorator, self).decorate()
MyDecorator
の引数としてクラスの名前を指定する必要がありますsuper()
。これはDRYではありません。クラスの名前を変更するときは、名前を2回変更する必要があります。なぜこれがこのように実装されているのですか?そして、クラスの名前を2回(またはそれ以上)書く必要がないようにする方法はありますか?