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

Python子类如何调用父类的同名函数且不覆盖原有逻辑?

实现方案

你需要在子类的同名方法中,通过super()调用父类的对应方法,执行完父类逻辑后再运行子类自定义的逻辑即可。

修改后的完整代码如下:

class Person:
    def __init__(self,p):
        self.p = p
    def printp(self):
        print(self.p)

class Bob(Person):
    def printp(self):
        # 调用父类的printp方法
        super().printp()
        print('letter')
        
b = Bob('p')
b.printp()

运行后输出结果如下,符合预期:

p
letter

补充说明:

  • super()是Python面向对象中专门用于调用父类方法的语法,支持单继承、多继承场景下按照方法解析顺序(MRO)自动匹配对应的父类
  • 你也可以选择显式指定父类调用,写法为Person.printp(self),但更推荐使用super(),后续修改父类名时不需要同步调整调用逻辑,兼容性更强。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 12:15:03