Python 中的 super 函数

Muhammad Waiz Khan 2021年4月29日
Python 中的 super 函数

本教程将解释 Python 中内置的 super() 函数的用途和用法。面向对象编程(OOP)的核心概念之一是继承,在继承中,一个类(子类)可以访问父类或超类的属性和方法。

在多个继承中,一个类可以从多个类继承属性和方法,这意味着该类将具有多个超类。super() 函数很有用,主要用于多重继承的情况下,本教程将讨论 super() 函数的详细信息和代码示例。

在 Python 中使用内置函数 super()

super() 函数访问类中重写的继承方法。在具有多个继承的子类中使用 super() 函数来访问下一个父类或超类的函数。super() 函数使用方法解析顺序(MRO)确定下一个父类。例如,如果 MRO 是 C -> D -> B -> A -> object,那么 super() 函数将按 D -> B -> A -> object 的顺序寻找下一个父类或超类方法。

如果该类是单个继承类,则在这种情况下,super() 函数可用于使用父类的方法而无需显式使用其名称。

super(type) 函数返回一个代理对象,该对象调用输入 type 的父级或同级类的方法。在 Python 2 和 3 中,super() 的语法不同,我们可以在 Python 2 中使用 super() 函数将继承的方法 mymethod() 称为 super(type, self).mymethod(args),在 Python 3 中为 super().mymethod(args)

现在,让我们看一下使用 super() 函数从 Python 的子类中调用继承的方法的详细示例代码。

示例代码:

class mysuper_class(object):     
    def super_method(self):
        print("Method of the super class was called!")

class myclass(mysuper_class):
    def mymethod(self):
        super().super_method()
        
a = myclass()
a.mymethod()

输出:

Method of the super class was called

相关文章 - Python Class