เมื่อสร้างลำดับชั้นวัตถุแบบง่าย ๆ ใน 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 ดูเหมือนว่าฉันต้องตั้งชื่อคลาส parent อย่างชัดเจนจาก child Foo::frotz()
ในตัวอย่างข้างต้นที่ผมจะต้องทำสิ่งที่ชอบ
สิ่งนี้ดูไม่ถูกต้องเนื่องจากพฤติกรรมนี้ทำให้ยากที่จะสร้างลำดับชั้นลึก หากเด็กจำเป็นต้องรู้ว่าคลาสใดที่กำหนดวิธีการสืบทอดมาจากนั้นความเจ็บปวดด้านข้อมูลทุกประเภทจะถูกสร้างขึ้น
นี่เป็นข้อ จำกัด ที่แท้จริงในหลามช่องว่างในความเข้าใจของฉันหรือทั้งสองอย่าง?