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

如何在Python中强制调用父类自身方法,忽略子类重写

在Python中强制调用父类方法(忽略子类重写)

要实现类似PHP中self::强制调用父类自身方法的效果,你可以直接通过父类类名调用目标方法,并将当前实例作为第一个参数传入,以此绕过Python的方法解析顺序(MRO),完全忽略子类的重写逻辑。

修改后的代码示例

class Dog:
    def sound(self):
        # 直接调用Dog类的prepare方法,传入当前实例
        Dog.prepare(self)
        print('au au!')

    def prepare(self):
        print('preparando parent!')

class Boxer(Dog):
    def sound(self):
        super().sound()

    def prepare(self):
        print('preparando box!')

dog = Boxer()
dog.sound()

输出结果

preparando parent!
au au!

原理说明

  • 原代码中self.prepare()会根据实例的实际类型(Boxer)查找方法,因此会调用子类重写后的prepare。
  • 而Dog.prepare(self)直接指定调用Dog类定义的prepare方法,无论当前实例是哪个子类的对象,都会执行父类的方法逻辑,完全匹配你需要的行为。

内容的提问来源于stack exchange,提问作者José Victor

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 21:27:12