Python รวมเข้าใน
- หน้าก่อน Python รูปแบบ/วัตถุ
- หน้าต่อไป Python อิเล็กทรอนิก
Python รวมเข้าใน
การสืบทอดอนุญาตให้เราสร้างชั้นที่สามารถสืบทอดทุกหน้าต่างและคุณสมบัติจากชั้นอื่น:
หลักเชื่อมเป็นชั้นที่สืบทอดมา และเรียกว่าหลักเชื่อม
ชั้นที่สืบทอดเป็นชั้นที่สืบทอดมาจากชั้นอื่น ๆ และเรียกว่าชั้นที่สืบทอด
สร้างหลักเชื่อม
ชั้นเดี่ยวก็สามารถเป็นหลักเชื่อม ดังนั้นบทบาทของมันในการสร้างชั้นเดี่ยวเหมือนกับการสร้างชั้นเดี่ยวอื่นใด:
ตัวอย่าง
สร้างชั้น Person ซึ่งมีคุณสมบัติ firstname และ lastname และหน้าต่างภายนอก printname:
class Person: def __init__(self, fname, lname): self.firstname = fname self.lastname = lname def printname(self): print(self.firstname, self.lastname) # สร้างวัตถุโดยใช้ Person และปฏิบัติการฟังก์ชัน printname: x = Person("Bill", "Gates") x.printname()
สร้างลูกหลัง
เพื่อสร้างระบุรายละเอียดที่สืบทอดความสำคัญจากองค์ประกอบพื่อน โปรดส่งองค์ประกอบพื่อนเป็นตัวอุปกรณ์ในการสร้างลูกหลัง:
ตัวอย่าง
สร้างระบุรายละเอียด Student ที่สืบทอดรายละเอียดและวิธีจากระบุรายละเอียด Person:
class Student(Person): pass
หมายเหตุ:ถ้าคุณไม่ต้องการเพิ่มรายละเอียดหรือวิธีอื่นๆ ให้ใช้ pass
ในคำสั่ง)
ตอนนี้ ระบุรายละเอียด Student มีรายละเอียดและวิธีเหมือนกับระบุรายละเอียด Person
ตัวอย่าง
สร้างวัตถุโดยใช้ระบุรายละเอียด Student และปฏิบัติการฟังก์ชัน printname:
x = Student("Elon", "Musk") x.printname()
เพิ่มฟังก์ชัน __init__()
จนบัดนี้ เราได้สร้างลูกหลังที่สืบทอดรายละเอียดและวิธีขององค์ประกอบพ่อ
เราต้องการที่จะเพิ่ม __init__()
ฟังก์ชันเพิ่มเข้าสู่ลูกหลัง (ไม่ใช่ pass
ในคำสั่ง)
หมายเหตุ:ในทุกครั้งที่คุณใช้ระบุรายละเอียดเพื่อสร้างวัตถุใหม่ ฟังก์ชัน __init__() จะทำการเรียกโดยอัตโนมัติ
ตัวอย่าง
เพิ่มฟังก์ชัน __init__() สำหรับระบุรายละเอียด Student:
class Student(Person): def __init__(self, fname, lname): # เพิ่มรายละเอียดต่างๆ
เมื่อคุณเพิ่มฟังก์ชัน __init__() ลูกหลังจะไม่สืบทอดฟังก์ชัน __init__() ขององค์ประกอบพ่อ
หมายเหตุ:ฟังก์ชัน __init__() ของลูกจะทำให้ลบการสืบทอดฟังก์ชัน __init__() ขององค์ประกอบพ่อ
ถ้าคุณต้องการที่จะรักษาการสืบทอดฟังก์ชัน __init__() ขององค์ประกอบพ่อ โปรดเพิ่มการเรียกฟังก์ชัน __init__() ขององค์ประกอบพ่อ:
ตัวอย่าง
class Student(Person): def __init__(self, fname, lname): Person.__init__(self, fname, lname)
ตอนนี้ เราได้เพิ่มฟังก์ชัน __init__() แล้วและรักษาการสืบทอดจากองค์ประกอบพ่อ และเราเตรียมพร้อมที่จะเพิ่มความสำคัญในฟังก์ชัน __init__()
ใช้ฟังก์ชัน super()
Python ยังมี super()
ฟังก์ชัน มันจะทำให้ลูกหลังสืบทอดทุกวิธีและรายละเอียดจากองค์ประกอบพ่อ:
ตัวอย่าง
class Student(Person): def __init__(self, fname, lname): super().__init__(fname, lname)
ด้วยการใช้ฟังก์ชัน super()
ฟังก์ชัน คุณไม่จำเป็นต้องใช้ชื่อขององค์ประกอบพ่อเมื่อใด มันจะทำการสืบทอดวิธีและรายละเอียดจากองค์ประกอบพ่อโดยอัตโนมัติ。
เพิ่มรายละเอียด
ตัวอย่าง
เพิ่มวิธีชื่อ graduationyear
ของคุณเพิ่มเติมเข้าสู่ Student
ระบุรายละเอียด
class Student(Person): def __init__(self, fname, lname): super().__init__(fname, lname) self.graduationyear = 2019
ในตัวอย่างนี้ ปี 2019 ควรเป็นตัวแปร และส่งค่าปีนี้ไปยังชั้น Student โดยใช้ __init__() ดังนี้:
ตัวอย่าง
เพิ่ม year
จำกัดค่าตั้งต้น และส่งค่าปีที่ถูกต้องเมื่อสร้างตัวแทน
class Student(Person): def __init__(self, fname, lname, year): super().__init__(fname, lname) self.graduationyear = year x = Student("Elon", "Musk", 2019)
เพิ่มวิธี
ตัวอย่าง
เพิ่มวิธีชื่อ welcome
เพิ่มวิธีที่มีชื่อเดียวกับวิธีนี้เข้าในชั้น Student:
class Student(Person): def __init__(self, fname, lname, year): super().__init__(fname, lname) self.graduationyear = year def welcome(self): print("Welcome", self.firstname, self.lastname, "to the class of", self.graduationyear)
คำเตือน:หากคุณเพิ่มวิธีที่มีชื่อเดียวกับวิธีในหลักเมื่ออยู่ในชั้นย่อย วิธีนี้จะทำให้ลบวิธีที่ได้รับมาจากเชื้อเลือด
- หน้าก่อน Python รูปแบบ/วัตถุ
- หน้าต่อไป Python อิเล็กทรอนิก