object()是 Python 的内置函数之一,它返回一个新的object实例;object是所有类的基类,即所有 Python 类都直接或间接地继承自object类。

class MyClass(object): # 显示继承 object
    pass

class MyClass:  # 隐式继承 object
    pass

object类是所有类的基类:

class MyClass:
    pass

# MyClass 继承自 object 类
print(isinstance(MyClass, object))  # 输出 True

object实例不能添加属性,但object的子类可以:

obj = object()

# obj.x = 123 # AttributeError: 'object' object has no attribute 'x'

class MyObject(object):
    pass

obj = MyObject()
obj.x = 123
print(obj.x) # 123

所有的内置数据类型都继承自object:

print(isinstance(123.456, object))  # True
print(isinstance("hello", object))  # True
print(isinstance([], object))       # True
print(isinstance({}, object))       # True
print(isinstance((), object))       # True

object提供一些了特殊的方法,所有子类都将继承这些方法:

for name in dir(object()):
    print(name)

程序输出

__class__
__delattr__
__dir__
__doc__
__eq__
__format__
__ge__
__getattribute__
__getstate__
__gt__
__hash__
__init__
__init_subclass__
__le__
__lt__
__ne__
__new__
__reduce__
__reduce_ex__
__repr__
__setattr__
__sizeof__
__str__
__subclasshook__