python 函数继承方法

  • Post category:Python

函数继承是面向对象编程中的重要概念之一,它允许一个子函数继承父函数的特性和属性,同时可以额外添加或覆盖一些新的特性或属性。在Python中,函数继承可以通过以下两种方式实现:类继承和多重继承。

类继承

类继承是指创建一个新类,新类可以继承一个或多个父类的属性和方法,并可以重写或添加新的属性和方法。这可以通过定义一个子类,并在子类中使用super()函数来调用父类的方法来实现。下面是一个简单的示例代码:

class Parent:
    def func1(self):
        print("This is parent function 1.")

    def func2(self):
        print("This is parent function 2.")

class Child(Parent):
    def func2(self):
        print("This is child function 2.")

obj = Child()
obj.func1()
obj.func2()

上述代码中,创建了一个父类 Parent 和一个子类 Child。在父类中定义了两个方法 func1()func2()。在子类中使用 Parent 类名以及 super() 函数调用 func1() 方法,并在 func2() 方法中覆盖了父类的方法。最后创建了一个子类的对象 obj 并调用了调用 func1()func2() 方法。

输出结果为:

This is parent function 1.
This is child function 2.

其中,调用函数 func1() 时由于子类没有覆盖此方法,因此调用的是父类的方法的实现。而调用函数 func2() 时,则是调用子类的实现。

多重继承

另一种函数继承的方法是多重继承。它指的是子类继承自多个父类,并可以使用这些父类提供的方法或属性。同样的,多重继承也允许子类覆盖或扩展父类的方法或属性。下面是示例代码:

class Parent1:
    def func1(self):
        print("This is parent 1 function 1.")

    def func2(self):
        print("This is parent 1 function 2.")

class Parent2:
    def func2(self):
        print("This is parent 2 function 2.")

    def func3(self):
        print("This is parent 2 function 3.")

class Child(Parent1, Parent2):
    def func4(self):
        print("This is child function 4.")

obj = Child()
obj.func1()
obj.func2()
obj.func3()
obj.func4()

在示例代码中,定义了两个父类 Parent1Parent2,以及一个子类 Child。通过使用逗号分隔的方式将需要继承的父类写在子类名称的括号内实现多重继承。在示例代码中,子类继承了两个父类提供的方法并且也新增了一个方法 func4()

程序的输出结果为:

This is parent 1 function 1.
This is parent 1 function 2.
This is parent 2 function 3.
This is child function 4.

其中,Child 类继承了两个父类 Parent1Parent2 的方法。如果两个父类提供了同样的方法,那么 Child 类将使用多重继承中最左边的父类的方法实现,即第一个父类 Parent1 的方法。同时,Child 类新增了方法 func4(),并成功调用了这个方法。

综上所述,Python 函数继承的同类和多重继承结构都存在,并且都可以通过 super() 函数在子类中访问父类的方法。开发者可以根据具体项目的需要,选择不同的继承方式。