บทช่วยสอนงูหลาม

Python HOME แนะนำ Python Python เริ่มต้น ไวยากรณ์หลาม ความคิดเห็นหลาม ตัวแปรหลาม ประเภทข้อมูลหลาม ตัวเลขหลาม Python Casting Python Strings Python Booleans ตัวดำเนินการ Python รายการหลาม Python Tuples ชุดหลาม พจนานุกรม Python Python If...Else Python ในขณะที่ลูป Python สำหรับลูป ฟังก์ชั่นหลาม Python Lambda Python Arrays Python คลาส/วัตถุ มรดกหลาม Python Iterators ขอบเขตหลาม โมดูล Python วันที่หลาม คณิตศาสตร์หลาม Python JSON Python RegEx Python PIP Python ลอง...ยกเว้น อินพุตผู้ใช้ Python การจัดรูปแบบสตริงหลาม

การจัดการไฟล์

การจัดการไฟล์ Python Python อ่านไฟล์ Python เขียน/สร้างไฟล์ Python ลบไฟล์

โมดูล Python

NumPy กวดวิชา เกมส์หมีแพนด้า กวดวิชา Scipy

Python Matplotlib

บทนำ Matplotlib Matplotlib เริ่มต้น Matplotlib Pyplot Matplotlib พล็อต เครื่องหมาย Matplotlib Matplotlib Line ป้ายกำกับ Matplotlib Matplotlib Grid แผนย่อย Matplotlib Matplotlib Scatter Matplotlib บาร์ Matplotlib Histograms Matplotlib แผนภูมิวงกลม

การเรียนรู้ของเครื่อง

เริ่มต้น โหมดค่ามัธยฐาน ส่วนเบี่ยงเบนมาตรฐาน เปอร์เซ็นไทล์ การกระจายข้อมูล การกระจายข้อมูลปกติ พล็อตกระจาย การถดถอยเชิงเส้น การถดถอยพหุนาม การถดถอยพหุคูณ มาตราส่วน รถไฟ/ทดสอบ ต้นไม้การตัดสินใจ

Python MySQL

MySQL เริ่มต้น MySQL สร้างฐานข้อมูล MySQL สร้างตาราง MySQL Insert MySQL Select MySQL Where MySQL สั่งซื้อโดย MySQL Delete MySQL Drop Table MySQL Update MySQL Limit MySQL เข้าร่วม

Python MongoDB

MongoDB เริ่มต้น MongoDB สร้างฐานข้อมูล MongoDB สร้างคอลเล็กชัน MongoDB แทรก MongoDB ค้นหา แบบสอบถาม MongoDB MongoDB Sort MongoDB ลบ MongoDB Drop Collection อัพเดท MongoDB MongoDB Limit

การอ้างอิงหลาม

ภาพรวมของ Python ฟังก์ชันในตัวของ Python Python String Methods Python List Methods วิธีพจนานุกรม Python วิธี Python Tuple Python Set Methods วิธีไฟล์ Python คีย์เวิร์ด Python ข้อยกเว้นของ Python คำศัพท์หลาม

การอ้างอิงโมดูล

โมดูลสุ่ม โมดูลคำขอ โมดูลสถิติ โมดูลคณิตศาสตร์ โมดูล cMath

Python ฮาวทู

ลบรายการที่ซ้ำกัน ย้อนกลับสตริง เพิ่มสองตัวเลข

ตัวอย่าง Python

ตัวอย่าง Python Python Compiler แบบฝึกหัดหลาม แบบทดสอบ Python ใบรับรอง Python

มรดกหลาม


มรดกหลาม

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

คลาสหลักคือคลาสที่สืบทอดมาจากคลาสหรือที่เรียกว่าคลาสฐาน

คลาสลูกคือคลาสที่สืบทอดมาจากคลาสอื่น เรียกอีกอย่างว่าคลาสที่ได้รับ


สร้างชั้นเรียนผู้ปกครอง

คลาสใดก็ได้สามารถเป็นคลาสหลักได้ ดังนั้นไวยากรณ์จึงเหมือนกับการสร้างคลาสอื่นๆ:

ตัวอย่าง

สร้างคลาสชื่อPerson, with firstnameและlastnameproperties และprintnamemethod:

class Person:
  def __init__(self, fname, lname):
    self.firstname = fname
    self.lastname = lname

  def printname(self):
    print(self.firstname, self.lastname)

#Use the Person class to create an object, and then execute the printname method:

x = Person("John", "Doe")
x.printname()

สร้างชั้นเรียนเด็ก

ในการสร้างคลาสที่สืบทอดฟังก์ชันการทำงานจากคลาสอื่น ให้ส่งคลาสพาเรนต์เป็นพารามิเตอร์เมื่อสร้างคลาสย่อย:

ตัวอย่าง

สร้างคลาสชื่อStudentซึ่งจะสืบทอดคุณสมบัติและเมธอดจากPersonคลาส:

class Student(Person):
  pass

หมายเหตุ:ใช้pass คำสำคัญเมื่อคุณไม่ต้องการเพิ่มคุณสมบัติหรือวิธีการอื่นใดในชั้นเรียน

ตอนนี้คลาส Student มีคุณสมบัติและเมธอดเดียวกันกับคลาส Person

ตัวอย่าง

ใช้Studentคลาสเพื่อสร้างอ็อบเจ็กต์ แล้วรันprintnameเมธอด:

x = Student("Mike", "Olsen")
x.printname()


เพิ่มฟังก์ชัน __init__()

จนถึงตอนนี้ เราได้สร้างคลาสลูกที่สืบทอดคุณสมบัติและเมธอดจากพาเรนต์

เราต้องการเพิ่ม__init__()ฟังก์ชันให้กับคลาสย่อย (แทนที่จะเป็นpassคีย์เวิร์ด)

หมายเหตุ:ฟังก์ชัน__init__()นี้จะถูกเรียกโดยอัตโนมัติทุกครั้งที่มีการใช้คลาสเพื่อสร้างอ็อบเจกต์ใหม่

ตัวอย่าง

เพิ่ม__init__()ฟังก์ชั่นให้กับ Studentคลาส:

class Student(Person):
  def __init__(self, fname, lname):
    #add properties etc.

เมื่อคุณเพิ่ม__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("Mike", "Olsen", 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)

หากคุณเพิ่มเมธอดในคลาสย่อยที่มีชื่อเดียวกับฟังก์ชันในคลาสพาเรนต์ การสืบทอดของเมธอดพาเรนต์จะถูกแทนที่


ทดสอบตัวเองด้วยแบบฝึกหัด

ออกกำลังกาย:

ไวยากรณ์ที่ถูกต้องในการสร้างคลาสชื่อ Student ที่จะสืบทอดคุณสมบัติและวิธีการจากคลาสชื่อ Person คืออะไร

class :