Pythonで単純なオブジェクト階層を作成するとき、派生クラスから親クラスのメソッドを呼び出せるようにしたいと思います。PerlとJavaには、このためのキーワードがあります(super
)。Perlでは、私はこれを行うかもしれません:
package Foo;
sub frotz {
return "Bamf";
}
package Bar;
@ISA = qw(Foo);
sub frotz {
my $str = SUPER::frotz();
return uc($str);
}
Pythonでは、親クラスに子から明示的に名前を付ける必要があるようです。上記の例では、のようにする必要がありFoo::frotz()
ます。
この動作では深い階層を作成することが困難になるため、これは正しくないようです。子供が継承されたメソッドを定義したクラスを知る必要がある場合は、あらゆる種類の情報の苦痛が生じます。
これはPythonの実際の制限ですか、私の理解のギャップですか?