Створюючи просту ієрархію об'єктів у 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, розрив у моєму розумінні чи те й інше?