Saat membuat hierarki objek sederhana dalam Python, saya ingin dapat memanggil metode dari kelas induk dari kelas turunan. Di Perl dan Java, ada kata kunci untuk ini ( super
). Di Perl, saya mungkin melakukan ini:
package Foo;
sub frotz {
return "Bamf";
}
package Bar;
@ISA = qw(Foo);
sub frotz {
my $str = SUPER::frotz();
return uc($str);
}
Dalam Python, tampaknya saya harus memberi nama kelas induk secara eksplisit dari anak. Pada contoh di atas, saya harus melakukan sesuatu seperti Foo::frotz()
.
Ini sepertinya tidak benar karena perilaku ini menyulitkan untuk membuat hierarki yang mendalam. Jika anak-anak perlu tahu kelas apa yang mendefinisikan metode yang diwariskan, maka semua jenis rasa sakit informasi dibuat.
Apakah ini keterbatasan sebenarnya dalam python, celah dalam pemahaman saya atau keduanya?