คลาสสามารถได้รับมาจากคลาสพื้นฐานมากกว่าหนึ่งคลาสใน Python สิ่งนี้เรียกว่าการสืบทอดหลายรายการ
ในการสืบทอดหลายรายการ คุณลักษณะของคลาสพื้นฐานทั้งหมดจะสืบทอดไปยังคลาสที่ได้รับ ไวยากรณ์สำหรับการสืบทอดหลายรายการคล้ายกับการสืบทอดเดี่ยว
class Super1: pass class Super2: pass class MultiDerived(Super1, Super2): pass
ในสถานการณ์สมมติการสืบทอดหลายรายการ คุณลักษณะใด ๆ ที่ระบุจะถูกค้นหาก่อนในคลาสปัจจุบัน หากไม่พบ การค้นหาจะดำเนินต่อไปในคลาสหลักในเชิงลึกก่อน ซ้าย-ขวา โดยไม่ต้องค้นหาคลาสเดียวกันซ้ำ 2 ครั้ง
ในตัวอย่างข้างต้นของคลาส MultiDerived ลำดับการค้นหาคือ [MultiDerived, Super1, Super2, object] ลำดับนี้เรียกอีกอย่างว่าการทำให้เป็นเส้นตรงของคลาส MultiDerived และชุดของกฎที่ใช้เพื่อค้นหาลำดับนี้เรียกว่า Method Resolution Order (MRO)
MRO ช่วยให้มั่นใจว่าคลาสจะปรากฏก่อนผู้ปกครองเสมอ และในกรณีที่มีผู้ปกครองหลายคน ลำดับจะเหมือนกับทูเพิลของคลาสพื้นฐาน
MRO ของคลาสสามารถดูเป็นแอตทริบิวต์ __mro__ หรือเมธอด mro() ค่าแรกกลับค่า tuple ในขณะที่ตัวหลังจะคืนค่ารายการ
>>> MultiDerived.mro() [<class '__main__.MultiDerived'>, <class '__main__.Super1'>, <class '__main__.Super2'>, <class 'object'>]