ການຮັບພີມຂອງ 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 对象时传递到 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)

运行实例

提示:如果您在子类中添加一个与父类中的函数同名的方法,则将覆盖父方法的继承。