ในบทความนี้ เราจะเรียนรู้การสืบทอดและการขยายคลาสใน Python 3.x หรือก่อนหน้านั้น
การสืบทอดแสดงถึงความสัมพันธ์ในโลกแห่งความเป็นจริงได้ดี ให้การนำกลับมาใช้ใหม่ได้ และสนับสนุนการถ่ายทอด ให้เวลาในการพัฒนาที่เร็วขึ้น บำรุงรักษาง่ายขึ้น และขยายได้ง่าย
มรดกแบ่งออกเป็น 5 ประเภทใหญ่ๆ –
- โสด
- หลายรายการ
- ลำดับชั้น
- หลายระดับ
- ไฮบริด
ดังที่แสดงในรูปด้านบนว่าการสืบทอดเป็นกระบวนการที่เราพยายามเข้าถึงคุณสมบัติของคลาสอื่นโดยไม่ได้สร้างวัตถุของคลาสพาเรนต์จริง ๆ
เราจะมาเรียนรู้เกี่ยวกับการนำการสืบทอดแบบเดี่ยวและแบบลำดับชั้นไปใช้งาน
มรดกเดี่ยว
ตัวอย่าง
# parent class class Student(): # constructor of parent class def __init__(self, name, enrollnumber): self.name = name self.enrollnumber = enrollnumber def display(self): print(self.name) print(self.enrollnumber) # child class class College( Student ): def __init__(self, name, enrollnumber, admnyear, branch): self.admnyear = admnyear self.branch = branch # invoking the __init__ of the parent class Student.__init__(self, name, enrollnumber) # creation of an object for base/derived class obj = College('Rohit',42414802718,2018,"CSE") obj.display()
ผลลัพธ์
Rohit 42414802718
มรดกหลายรายการ
ตัวอย่าง
# parent class class Student(): # constructor of parent class def __init__(self, name, enrollnumber): self.name = name self.enrollnumber = enrollnumber def display(self): print(self.name) print(self.enrollnumber) # child class class College( Student ): def __init__(self, name, enrollnumber, admnyear, branch): self.admnyear = admnyear self.branch = branch # invoking the __init__ of the parent class Student.__init__(self, name, enrollnumber) # child class class University( Student ): def __init__(self, name, enrollnumber, refno, branch): self.refno = refno self.branch = branch # invoking the __init__ of the parent class Student.__init__(self, name, enrollnumber) # creation of an object for base/derived class obj_1 = College('Rohit',42414802718,2018,"CSE") obj_1.display() obj_2 = University ('Rohit',42414802718,"st2018","CSE") obj_2.display()
ผลลัพธ์
Rohit 42414802718 Rohit 42414802718
บทสรุป
ในบทความนี้ เราได้เรียนรู้เกี่ยวกับการสืบทอดใน Python แบบกว้างๆ และการสืบทอดแบบลำดับชั้น