super()函数的用处是调用当前类的父类函数。在要调用父类的函数之外,还需要加一点别的操作的时候,特别有用。
例:
class AA(object):
def print_something(self):
print('I am AA.')
class BB(AA):
def print_something(self):
super().print_something()
print('I am BB.')
if __name__ == "__main__":
b = BB()
b.print_something()
结果是:
I am AA.
I am BB.
上面是单继承的例子,用super()而不是直接用父类的名字去调用父类函数的好处是不用管父类的名字。即使父类改名了,super()的调用依然有效。
多重继承的时候需要根据MRO来决定调用顺序。详见官方文档: