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

Python中继承已有类时额外继承object是否有实际意义?

Python中额外继承object的多重继承是否有实际益处?

我在审阅代码时发现了这样的结构:

class Bar(Foo, object):

看起来可以简化成:

class Bar(Foo):

从方法解析的继承链来看,二者功能似乎一致,两种情况下Foo和Bar都是object的isinstance()实例:

B → F → o

B → F
  ↳ o

想请教这种额外继承object的多重继承是否存在实际益处?


  • 在Python 3环境下,完全没有实际益处。Python 3里所有类默认都是新式类,哪怕只写class Bar(Foo):,只要Foo本身是新式类(不管直接还是间接继承object),Bar都会自动成为object的子类,继承逻辑和显式写object完全一致。
  • 要是放到Python 2中,情况会有区别:Python 2区分旧式类和新式类,只有显式继承object的类才是新式类。但如果Foo已经是新式类(比如定义为class Foo(object):),那Bar(Foo, object)和Bar(Foo)也没有功能上的差异,因为Foo已经把object的继承链包含在内了。
  • 硬要找个“作用”的话,这种写法可能只是Python 2过渡到Python 3后的习惯残留——部分开发者保留了显式声明object的写法,但在Python 3里完全是冗余的,反而会让代码显得啰嗦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 18:42:04