python调用父类构造函数

quanzhankaifa

温馨提示:这篇文章已超过287天没有更新,请注意相关的内容是否还可用!

python调用父类构造函数

在Python中,我们可以通过调用父类的构造函数来实现继承。当我们定义一个子类时,通常会重写父类的构造函数来添加子类特有的属性或行为。在某些情况下,我们可能希望在子类的构造函数中保留父类的属性或行为,并且在此基础上添加一些新的属性或行为。这时,我们可以使用super()函数来调用父类的构造函数。

super()函数是Python中的一个内置函数,它返回一个临时对象,该对象是父类的实例。通过调用super()函数,我们可以在子类中访问父类的属性和方法。在调用父类的构造函数时,我们需要提供子类的实例作为参数。父类的构造函数将使用这个实例来初始化父类的属性。

下面是一个示例代码,演示了如何在子类中调用父类的构造函数:

class Parent:

def __init__(self, name):

self.name = name

def greet(self):

print("Hello, my name is", self.name)

class Child(Parent):

def __init__(self, name, age):

super().__init__(name)

self.age = age

def introduce(self):

print("I am", self.name, "and I am", self.age, "years old")

child = Child("Alice", 10)

child.greet() # 输出:Hello, my name is Alice

child.introduce() # 输出:I am Alice and I am 10 years old

在上面的示例中,我们定义了一个父类Parent和一个子类Child。父类Parent有一个构造函数__init__(),接受一个name参数,并将其赋值给父类的属性self.name。父类还有一个greet()方法,用于打印问候语。

子类Child继承了父类Parent,并且有自己的构造函数__init__()。在子类的构造函数中,我们首先调用super().__init__(name)来调用父类的构造函数,并传递name参数。这样,子类的实例就会继承父类的name属性。然后,我们再添加子类特有的属性self.age。

子类还有一个introduce()方法,用于打印自我介绍。在这个方法中,我们可以访问父类的name属性和子类自己的age属性。

我们创建了一个子类的实例child,并分别调用了父类的greet()方法和子类的introduce()方法。通过调用父类的构造函数,子类实例继承了父类的属性,并且在此基础上添加了自己的属性。这样,我们既保留了父类的属性和行为,又扩展了子类的功能。

需要注意的是,在Python中,super()函数只能用于新式类(继承自object的类)。对于旧式类,我们需要使用父类的类名来调用父类的构造函数。如果子类中没有定义构造函数,Python会自动调用父类的构造函数。

文章版权声明:除非注明,否则均为莫宇前端原创文章,转载或复制请以超链接形式并注明出处。

取消
微信二维码
微信二维码
支付宝二维码