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

Python继承与函数重写:多继承下同名方法返回值问题

Python多继承同名方法调用规则

结论

当类的继承声明为C(A, B)时,会优先调用继承列表中位置更靠左的A类的同名方法,最终返回A类该方法的返回值。

验证示例

class A:
    def get_value(self):
        return 100

class B:
    def get_value(self):
        return 200

class C(A, B):
    # 没有重写get_value方法
    pass

c_instance = C()
print(c_instance.get_value()) # 输出结果为 100

核心规则说明

这个匹配逻辑由Python的**方法解析顺序(MRO,Method Resolution Order)**决定:

  • 简单无菱形继承的多继承场景下,方法匹配严格遵循继承列表从左到右的优先级,先声明的父类方法会被优先匹配
  • 你可以执行print(C.mro())查看该类的完整方法搜索顺序,输出结果为[<class '__main__.C'>, <class '__main__.A'>, <class '__main__.B'>, <class 'object'>],方法会按照这个列表的顺序从左到右搜索匹配
  • 如果需要调用B类的同名方法,可以显式指定父类调用:print(B.get_value(c_instance)),输出结果为200

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 05:15:03