Python 中的 super 函数
Muhammad Waiz Khan
2021年4月29日
本教程将解释 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