📅  最后修改于: 2023-12-03 15:24:52.483000             🧑  作者: Mango
在 Python 中,一个类可以拥有多个构造函数。我们可以使用 super()
函数来定义不同参数的构造函数,让代码更加简洁明了。本文将介绍两种常见的使用 super()
函数定义构造函数的方式,并给出示例代码。
如果父类的构造函数有参数,我们需要在子类中显式地调用父类的构造函数,并传入相应的参数。我们可以在子类的构造函数中使用 super()
函数来调用父类的构造函数,如下所示:
class Person:
def __init__(self, name):
self.name = name
class Student(Person):
def __init__(self, name, major):
super().__init__(name)
self.major = major
在上面的代码中,Person
类有一个带有一个参数 name
的构造函数。Student
类继承自 Person
,并有另一个带有两个参数 name
和 major
的构造函数。我们在 Student
类的构造函数中使用 super().__init__(name)
来调用父类 Person
的构造函数,并传入参数 name
。然后再定义 major
属性。
如果父类的构造函数不需要传参数,我们可以直接在子类的构造函数中使用 super()
函数来调用父类的构造函数,如下所示:
class Person:
def __init__(self):
self.age = 18
class Student(Person):
def __init__(self, major):
super().__init__()
self.major = major
在上面的代码中,Person
类有一个不带参数的构造函数,用于初始化 age
属性。Student
类继承自 Person
,并有一个带有一个参数 major
的构造函数。我们在 Student
类的构造函数中使用 super().__init__()
来调用父类 Person
的构造函数,然后再定义 major
属性。
通过上面的示例代码,我们可以看到使用 super()
函数定义构造函数可以让代码更加简洁明了。如果我们需要给父类的构造函数传参数,则需要在子类构造函数中显式地调用父类的构造函数,并传入相应的参数;如果父类的构造函数不需要传参数,则可以直接在子类的构造函数中使用 super()
函数来调用父类的构造函数。