ตามเอกสาร Python ฟังก์ชัน super() ช่วยให้สามารถขยายคลาสหลายคลาสในการสืบทอดได้ มันคืนค่า Proxy Object ที่มอบหมายการเรียกเมธอดให้คลาสผู้มา (Parent) หรือคลาสพี่น้อง (Sibling) ประโยชน์สำหรับการเข้าถึงเมธอดที่ถูก Override ในคลาสลูก ลำดับการค้นหาเหมือนกับ getattr() แต่ข้ามตัวคลาสเองไป
กล่าวคือ การเรียก super() จะคืน "ออบเจ็กต์ปลอม" ที่มอบหมายการค้นหาแอตทริบิวต์ให้คลาสที่อยู่เหนือในโซ่การสืบทอด
ข้อสังเกตสำคัญ:
- ไม่ทำงานกับ Old-style Classes (Python 2)
- Python 2.x ต้องส่งคลาสตัวเองและอินสแตนซ์ให้
super()แต่ Python 3.x ไม่ต้องส่งแล้ว - จัดการ Multiple Inheritance ได้ถูกต้อง โดยสร้าง Method Resolution Order (MRO) และค้นหาตามลำดับนั้น