Lors de la création d'une hiérarchie d'objets simple en Python, j'aimerais pouvoir invoquer des méthodes de la classe parente à partir d'une classe dérivée. En Perl et Java, il existe un mot-clé pour cela ( super
). En Perl, je pourrais faire ceci:
package Foo;
sub frotz {
return "Bamf";
}
package Bar;
@ISA = qw(Foo);
sub frotz {
my $str = SUPER::frotz();
return uc($str);
}
En Python, il semble que je doive nommer explicitement la classe parente de l'enfant. Dans l'exemple ci-dessus, je devrais faire quelque chose comme Foo::frotz()
.
Cela ne semble pas correct car ce comportement rend difficile la création de hiérarchies profondes. Si les enfants ont besoin de savoir quelle classe a défini une méthode héritée, alors toutes sortes d'informations sont créées.
Est-ce une limitation réelle en python, une lacune dans ma compréhension ou les deux?