Skip to content

การสืบทอดคุณสมบัติหลายคุณสมบัติ 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'>]

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

Published on Categories oopTags

About wannaphong

วรรณพงษ์ ภัททิยไพบูลย์ ผู้ดูแลเว็บ wannaphong.com และผู้เขียนบทความบล็อกนี้ นักศึกษาชั้นปีที่ 1 สาขาวิทยาการคอมพิวเตอร์และสารสนเทศ คณะวิทยาศาสตร์ประยุกต์และวิศวกรรมศาสตร์ มหาวิทยาลัยขอนแก่น วิทยาเขตหนองคาย

ใส่ความเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องที่ต้องการถูกทำเครื่องหมาย *