Quando creo una semplice gerarchia di oggetti in Python, vorrei essere in grado di invocare metodi della classe genitore da una classe derivata. In Perl e Java, esiste una parola chiave per this ( super
). In Perl, potrei fare questo:
package Foo;
sub frotz {
return "Bamf";
}
package Bar;
@ISA = qw(Foo);
sub frotz {
my $str = SUPER::frotz();
return uc($str);
}
In Python, sembra che devo nominare esplicitamente la classe genitore dal bambino. Nell'esempio sopra, dovrei fare qualcosa del genere Foo::frotz()
.
Questo non sembra giusto poiché questo comportamento rende difficile creare gerarchie profonde. Se i bambini hanno bisogno di sapere quale classe ha definito un metodo ereditato, allora viene creato ogni sorta di dolore informativo.
È una vera limitazione in Python, una lacuna nella mia comprensione o entrambi?