python重用父类功能的两种方式实例详解

1. 介绍

在Python中,我们经常会使用类和继承来组织和重用我们的代码。当我们需要在子类中使用父类的功能时,有两种方式可以实现:方法重写和super()函数。

2. 方法重写

2.1 什么是方法重写

方法重写是指在子类中定义一个与父类同名的方法,并且在子类中实现该方法的功能。当我们在子类中调用这个方法时,子类中定义的方法会覆盖父类中的方法。

2.2 代码示例

class Animal:

def speak(self):

print("Animal is speaking")

class Dog(Animal):

def speak(self):

print("Dog is barking")

dog = Dog()

dog.speak()

在上面的例子中,我们定义了一个Animal类和一个Dog类,其中Animal类有一个speak()方法,而Dog类通过方法重写覆盖了这个方法。

当我们调用dog.speak()时,输出结果为:

Dog is barking

从输出结果可以看出,dog对象调用speak()方法时,实际调用的是Dog类中定义的方法,而不是父类Animal中的方法。这就是方法重写的效果。

3. super()函数

3.1 什么是super()函数

super()函数是一个内置函数,用于调用父类中的方法。通过super()函数,我们可以在子类中调用父类中已经被重写的方法,从而实现对父类功能的重用。

3.2 代码示例

class Animal:

def speak(self):

print("Animal is speaking")

class Dog(Animal):

def speak(self):

super().speak()

print("Dog is barking")

dog = Dog()

dog.speak()

在上面的例子中,我们定义了一个Animal类和一个Dog类,其中Dog类通过super().speak()调用了父类Animal中的speak()方法,并在该方法的基础上添加了新的功能。

当我们调用dog.speak()时,输出结果为:

Animal is speaking

Dog is barking

从输出结果可以看出,dog对象首先调用了父类Animal中的speak()方法,然后在该方法的基础上添加了新的功能。这就是super()函数的作用。

4. 总结

通过方法重写和super()函数,我们可以在子类中重用父类的功能。方法重写可以完全覆盖父类中的方法,而super()函数可以在子类中调用父类的方法,并在该方法的基础上添加新的功能。根据需要选择适合的方式进行重用,可以有效提高代码的重用性和可读性。

后端开发标签