หากเราต้องการสืบทอดคุณสมบัติหลายคุณสมบัติ เพื่อความสะดวกในการเขียนโปรแกรมโดยไม่ต้องสร้างคุณสมบัติใหม่ซ้ำซ้อน เราสามารถใช้หลักการ Multiple Inheritance ได้
ในภาษา Python การใช้ Multiple Inheritance ไม่เหมือนกันกับภาษาอื่น ๆ โดยคลาสสามารถเรียกการสืบทอดคุณสมบัติจากคลาสอื่น ๆ ได้มากกว่าหนึ่งคลาส ตามตัวอย่างต่อไปนี้
class run1:
pass
class run2:
pass
class runall(run1,run2):
pass
หากเราต้องใช้ Multiple Inheritance แบบเรียงลำดับการสืบทอดคุณสมบัติ สามารถทำได้โดยการเรียกการสืบทอดคุณสมบัติจากคลาสไปเรื่อย ๆ จนครบตามที่ต้องการดังตัวอย่างต่อไปนี้
class run1:
pass
class run2(run1):
pass
class runall(run2):
pass
Method Resolution Order ในภาษา Python
ในภาษา Python มีสองคำสั่งดังนี้
- __mro__ เป็น attribute
- mro() เป็น method
โดยจะคืนค่าออกมาเป็น list
class A(object): pass
class B(object): pass
class C(object): pass
class D(B,C): pass
class E(D,C): pass
class F(E,C,A): pass
print(F.mro())
ผลลัพธ์
[<class '__main__.F'>, <class '__main__.E'>, <class '__main__.D'>, <class '__main__.B'>, <class '__main__.C'>, <class '__main__.A'>, <type 'object'>]
ติดตามบทความต่อไปนะครับ
ขอบคุณครับ
0 ความคิดเห็น:
แสดงความคิดเห็น
แสดงความคิดเห็นได้ครับ :)