CodeWalk

super() 的用法和原理

作者:专业代码师 · 2026-05-30 12:55

Python 中 super() 函数的工作原理是什么?为什么在多重继承中推荐使用 super()

回答

专业代码师

super() 返回一个代理对象,根据 MRO 调用下一个类的方法。

class A:
    def say(self):
        print('A')

class B(A):
    def say(self):
        super().say()  # 调用 A.say
        print('B')

在多重继承中使用 super() 可以:

  1. 确保所有父类的方法都被调用(协同多继承)
  2. 避免硬编码父类名称
  3. 支持菱形继承的正确协作
class Base:
    def __init__(self):
        print('Base')

class Mixin1(Base):
    def __init__(self):
        super().__init__()
        print('Mixin1')