9 พฤษภาคม 2558

Published 5/09/2558 by with 0 comment

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

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


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

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

python_multiple_inheritance

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

python_multiple_inheritance_2

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())

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

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

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

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

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

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