You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python代码中super()的工作机制是否和我理解的一致?

你的理解完全正确,这段代码的实际运行逻辑和你描述的没有偏差,我们可以把完整执行流程拆解开核对:

  • 执行shape = Square(4)时,首先触发Square类的构造方法__init__,将4赋值给形参side_length
  • Square的__init__中调用super(),在当前单继承的场景下,super()会直接定位到父类Rectangle,随后调用父类的__init__方法,把side_length的取值4同时传给父类构造的length和width两个形参,最终给shape实例生成两个属性:length=4、width=4
  • 执行shape.area()时,由于Square类没有定义自己的area方法,Python会顺着继承链向上查找,调用父类Rectangle的area方法,计算4*4得到结果16,最后打印输出。

补充说明:如果是存在多继承的复杂场景,super()的查找顺序会按照类的方法解析顺序(MRO)来确定,不过当前示例是最简单的单继承场景,你对super()的作用判断完全准确。


内容的提问来源于stack exchange,提问作者Despereaux

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.10 00:39:02