object (объект)
Объекты — это экземпляры типов. Далее в этой статье речь пойдёт об использовании object в качестве базового класса. Понятие «объект» как таковое более подробно описано на странице «Объекты».
В отличие от классов старого стиля, объекты которых создавались на базе встроенного типа instance , классы нового стиля являются полноценными пользовательскими типами.
Для классов старого стиля type(x) выдаст instance — подразумевается, что класс не представляет собой самостоятельный тип, а лишь является экземпляром некого базового типа.
object — это экземпляр типа type. Более того, обратное утверждение тоже верно. Это потому, что «всё — есть объект»: типы — это объекты, экземпляры типов — тоже объекты. Чтобы усугубить ощущение запутанности, скажем: тип — это подкласс объекта, однако обратное не верно.
isinstance(object, type) # True
isinstance(object, object) # True
isinstance(type, object) # True
isinstance(type, type) # True
issubclass(type, object) # True
issubclass(object, type) # False
Классы старого стиля упразднены в Python 3: теперь пользовательские типы, определённые без явного указания родителя, автоматически являются наследниками object . Переход на такую унифицированную объектную модель, помимо прочего, сделал возможным наследование от встроенных типов, применение дескрипторов, адекватное определение порядка разрешения методов при множественном наследовании.
# Следующие определения пользовательских типов
# эквивалентны.
# Python 2
class A(object): pass
# Python 3
class A: pass