python 函数继承方法

  • Post category:Python

Python函数继承方法是实现代码复用的重要方式,在面向对象编程中使用广泛。Python中的继承机制允许类从另一个类继承属性和方法,从而创建一个新的类,这个新类具有原始类的所有属性和方法。在这个过程中,原始类成为父类或超类,新类成为子类。子类可以通过继承,扩展和修改父类的属性和方法。

一般来说,Python中的继承分为以下几种:

  1. 单继承:指的是一个子类只从一个父类继承属性和方法。
  2. 多继承:指的是一个子类可以从多个父类继承属性和方法。

接下来,我们将分别介绍单继承和多重继承方法的使用。

单继承

在单继承中,子类可以从一个父类继承属性和方法,通过子类可以对父类方法进行重写(覆盖)扩充

1. 子类继承父类方法

下面是一个简单的示例,展示了如何使用单继承:

class Parent:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def show_info(self):
        print(f"Name: {self.name}\nAge: {self.age}")


class Child(Parent):
    pass


c = Child("Tom", 20)
c.show_info()  # 输出 Name: Tom, Age: 20

以上示例代码定义了两个类,Parent类和 Child 类,在 Child 类的定义中,我们使用关键字pass表示不对父类的方法做任何更改。因此,执行 c.show_info() 后将输出 “Name: Tom, Age: 20″,即从父类继承的属性。

2. 子类扩展父类方法

在单继承中,子类可以对父类方法进行扩展,从而具有更多的功能。下面是一个简单的示例,展示了如何在子类中实现一个新的方法,该方法扩展自父类方法:

class Parent:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def show_info(self):
        print(f"Name: {self.name}\nAge: {self.age}")


class Child(Parent):
    def show_info(self):
        super().show_info()  # 调用父类同名方法
        print(f"Student ID: {self.student_id}")


c = Child("Tom", 20)
c.student_id = 1001
c.show_info()

以上示例代码和上一个代码示例中的 Child 类基本相同,区别在于在子类中对show_info()方法进行了扩展,在子类的 show_info() 方法中通过 super().show_info() 调用父类同名方法并输出父类的内容,接下来输出扩展内容 "Student ID: 1001"

多继承

Python中的多继承是指一个类可以同时继承多个父类,因此可以从多个类中获得属性和方法。在实践中,多重继承通常用于创建最终一个实体类。Python中使用逗号分隔多个父类,在定义子类时使用它们进行继承。

1. 子类继承多个父类

下面是一个简单的示例,展示了如何使用多继承:

class Father:
    def play_guitar(self):
        print("Father plays guitar.")


class Mother:
    def drive(self):
        print("Mother drives a car.")


class Child(Father, Mother):
    pass


c = Child()
c.play_guitar()
c.drive()

以上示例代码定义了三个类,Father、Mother 和 Child。Father 和 Mother 分别代表父母, Child 类从两者继承。在子类中,我们可以使用从两个类继承的属性和方法,并且不需要在子类中进行任何更改。执行c.play_guitar()输出 “Father plays guitar.”,执行c.drive()输出 “Mother drives a car.”。

2. 多个父类方法重名

在多继承中,如果多个父类中有方法重名,那么在子类中调用重名方法时,将选择继承顺序靠前的父类的方法。如下示例代码:

class PersonA:
    def play(self):
        print("PersonA: I like playing football.")


class PersonB:
    def play(self):
        print("PersonB: I like playing basketball.")


class Child(PersonA, PersonB):
    pass


c = Child()
c.play()  # 输出 "PersonA: I like playing football."

以上示例代码定义了三个类,PersonA、PersonB 和 Child。在 Child 类中,从 PersonA 和 PersonB 类中同时继承了play()方法。但是由于 PersonA 在 Child 中排在前面,因此该方法将调用父类 PersonA 的方法并输出 “PersonA: I like playing football.”。

在多继承中,如果子类需要调用父类的特定方法,可以使用 super() 函数来实现。super() 函数使用方法如下:super().method()

综上所述,以上就是Python函数继承方法的完整攻略,其中我们讲解了如何使用单继承和多继承,以及如何在子类中继承、扩展和修改父类的属性和方法。