Inheritance ng Python
- Nakaraang Pahina Kahonan/Objeto Ng Python
- Susunod Na Pahina Iteration ng Python
Inheritance ng Python
Ang pag-inherita ay nagbibigay sa amin ng kakayahan na maglikha ng klase na may lahat ng mga method at attribute ng ibang klase.
Magulang na klaseAng klase na pinagmulan, kilala din bilang klase na pinag-ugnay.
Pinalawak na klaseAng klase na nanggaling sa ibang klase, na kilala din bilang klase na pinalawak.
Lumikha ng magulang na klase
Anumang klase ay maaaring maging magulang na klase, kaya ang syntax ay katulad ng paglikha ng anumang ibang klase:
Halimbawa
Lumikha ng isang klase na may pangalan na Person, na may mga attribute na firstname at lastname at ang method na 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()
创建子类
要创建从其他类继承功能的类,请在创建子类时将父类作为参数发送:
Halimbawa
创建一个名为 Student 的类,它将从 Person 类继承属性和方法:
class Student(Person): pass
注释:如果您不想向该类添加任何其他属性或方法,请使用 pass
关键字。
现在,Student 类拥有与 Person 类相同的属性和方法。
Halimbawa
使用 Student 类创建一个对象,然后执行 printname 方法:
x = Student("Elon", "Musk") x.printname()
添加 __init__() 函数
到目前为止,我们已经创建了一个子类,它继承了父类的属性和方法。
我们想要把 __init__()
函数添加到子类(而不是 pass
关键字)。
注释:每次使用类创建新对象时,都会自动调用 __init__() 函数。
Halimbawa
为 Student 类添加 __init__() 函数:
class Student(Person): def __init__(self, fname, lname): # 添加属性等
当您添加 __init__() 函数时,子类将不再继承父的 __init__() 函数。
注释:子的 __init__() 函数会覆盖对父的 __init__() 函数的继承。
如需保持父的 __init__() 函数的继承,请添加对父的 __init__() 函数的调用:
Halimbawa
class Student(Person): def __init__(self, fname, lname): Person.__init__(self, fname, lname)
现在,我们已经成功添加了 __init__() 函数,并保留了父类的继承,我们准备好在 __init__() 函数中添加功能了。
使用 super() 函数
Python 还有一个 super()
函数,它会使子类从其父继承所有方法和属性:
Halimbawa
class Student(Person): def __init__(self, fname, lname): super().__init__(fname, lname)
通过使用 super()
函数,您不必使用父元素的名称,它将自动从其父元素继承方法和属性。
添加属性
Halimbawa
Magdagdag ng pangalan na graduationyear
的属性添加到 Student
类:
class Student(Person): def __init__(self, fname, lname): super().__init__(fname, lname) self.graduationyear = 2019
Sa halimbawa, ang 2019 ay dapat ay isang variable, at ilagay sa paglikha ng student object sa klase ng Student. Para dito, magdagdag ng isa pang parametro sa function na __init__():
Halimbawa
Magdagdag Ng year
Ilang parametro, at ilagay ang tamang taon sa paglikha ng bagay na ito sa paglikha ng bagay:
class Student(Person): def __init__(self, fname, lname, year) super().__init__(fname, lname) self.graduationyear = year x = Student("Elon", "Musk", 2019)
Magdagdag Ng Paraan
Halimbawa
Magdagdag ng pangalan na welcome
Magdagdag ng mga paraan sa klase ng Student:
class Student(Person): def __init__(self, fname, lname, year): super().__init__(fname, lname) self.graduationyear = year def welcome(self): print("Maligayang Pagsilang", self.firstname, self.lastname, "sa klase ng", self.graduationyear)
Mga Tagubilin:Kung nagdagdag ka ng isang paraan na may parehong pangalan sa isang funksyon sa isang subklase na may parehong pangalan sa isang funksyon sa isang magulang na klase, ang funksyon ng magulang ay papalitan ng funksyon ng subklase.
- Nakaraang Pahina Kahonan/Objeto Ng Python
- Susunod Na Pahina Iteration ng Python