9 พฤษภาคม 2558

Published 5/09/2558 by with 0 comment

การสืบทอดคุณสมบัติหลายคุณสมบัติ Multiple Inheritance ภาษา Python

จากบทความที่แล้ว การสืบทอด Inheritance ภาษา Python บทความนี้จะพาผู้อ่านไปสืบทอดคุณสมบัติหลายคุณสมบัติ Multiple Inheritance ในภาษา Python กันครับ

หากเราต้องการสืบทอดคุณสมบัติหลายคุณสมบัติ เพื่อความสะดวกในการเขียนโปรแกรมโดยไม่ต้องสร้างคุณสมบัติใหม่ซ้ำซ้อน เราสามารถใช้หลักการ Multiple Inheritance ได้

ในภาษา Python การใช้ Multiple Inheritance ไม่เหมือนกันกับภาษาอื่น ๆ โดยคลาสสามารถเรียกการสืบทอดคุณสมบัติจากคลาสอื่น ๆ ได้มากกว่าหนึ่งคลาส ตามตัวอย่างต่อไปนี้

[python]
class run1:
pass
class run2:
pass
class runall(run1,run2):
pass
[/python]

python_multiple_inheritance

หากเราต้องใช้ Multiple Inheritance แบบเรียงลำดับการสืบทอดคุณสมบัติ สามารถทำได้โดยการเรียกการสืบทอดคุณสมบัติจากคลาสไปเรื่อย ๆ จนครบตามที่ต้องการดังตัวอย่างต่อไปนี้

[python]
class run1:
pass
class run2(run1):
pass
class runall(run2):
pass
[/python]

python_multiple_inheritance_2

Method Resolution Order ในภาษา Python


ในภาษา Python มีสองคำสั่งดังนี้

  • __mro__ เป็น attribute

  • mro() เป็น method


โดยจะคืนค่าออกมาเป็น list

[python]
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())
[/python]

การสืบทอดคุณสมบัติหลายคุณสมับัติ Multiple Inheritance ภาษา Python

ผลลัพธ์
[<class '__main__.F'>, <class '__main__.E'>, <class '__main__.D'>, <class '__main__.B'>, <class '__main__.C'>, <class '__main__.A'>, <type 'object'>]

ติดตามบทความต่อไปนะครับ
ขอบคุณครับ

0 ความคิดเห็น:

แสดงความคิดเห็น

แสดงความคิดเห็นได้ครับ :)