Python 3中类默认继承object,无需显式声明。1. 所有类均为新式类,自动具备super()、统一MRO、完整构造流程及正确isinstance行为。2. 显式写(object)合法但冗余,仅在兼容Python 2时必要。3. 纯Python 3下推荐省略,代码更简洁。
在 Python 3 中,父类不需要显式继承 object。如果你定义一个类时没有指定父类,Python 会自动让它继承自 object。
Python 3 中所有的类都是“新式类”(new-style classes),不再需要像 Python 2 那样显式写 class MyClass(object): 来获得新式类的特性。你现在可以简单地写:
class MyClass:
pass
这和下面的写法在功能上是完全等价的:
class MyClass(object): pass
继承自 object 的类拥有以下特性:
super() 函数__new__、__init__ 完整的构造流程虽然不强制,但显式写 class MyClass(object): 并不会出错,代码仍然合法。有些人出于风格或兼容性考虑仍会这样写,尤其是在需要同时兼容 Python 2 和 Python 3 的项目中。
但在纯 Python 3 环境下,省略 (object) 更简洁、更常见。
基本上就这些。Python 3 让这件事变得简单了:你不写,它也是 object 的子类。