super() 父类代理

最后更新:2026-09-22

super() 父类代理

super() 返回父类的代理对象;可在子类方法中调用父类实现。

分类内置函数
类型内置函数
Python 版本all

📝 语法

super([type[, object-or-type]])

⚙️ 参数

type 可选类;零参数形式自动推断当前类和实例。(默认值:None)
obj 可选实例或类,用于 MRO 定位。(默认值:None)

返回值:返回 MRO 中下一个类(父类)的代理对象,可经它调用父类方法。

💥 异常

▶ 示例

编辑下方代码,点击运行,在输出面板查看结果:

运行结果:

A.hello
B.hello
更多实战案例即将上线,敬请期待。

❓ 常见问题

Qsuper() 是干什么的?
A在子类方法里调用父类的同名实现:super().hello() 会找到 MRO 中“下一个类”的 hello 方法并调用它。
Q为什么 super() 必须在类的方法里调用?
A零参数形式会自动推断“当前类 + 当前实例”,在类外(如普通函数里)调用会抛 RuntimeError: super(): no arguments。
Q什么时候必须写 super().__init__()?
A子类重写了 __init__ 且希望父类也完成初始化时;不写则父类 __init__ 不会执行(除非父类就是 object)。
Qsuper() 在多继承里按什么顺序找父类?
A按 MRO(方法解析顺序)。super() 不是“直接父类”而是“MRO 中的下一个类”,多继承时能正确处理钻石继承,避免父类被重复调用。
Web-Tutorial.com

Web-Tutorial 技术团队

由多位开发者共同维护的编程教程平台。每篇教程由对应领域的开发者编写和审核,确保内容准确可靠。如发现任何问题,欢迎向我们反馈。

100%

🙏 帮我们做得更好

我们是刚上线的编程教程站,几个人的小团队,精力有限。页面虽经检查,难免还有疏漏——链接失效、排版错乱、内容有误、语言生硬……

如果您发现了,麻烦告诉我们,我们会在收到反馈后第一时间进行修复,再次感谢您的光临 🙏