Сообщить об ошибке.

Класс object() в Python, возвращает безликий объект

Является базой для всех классов

Синтаксис:

object()

Возвращаемое значение:

  • новый безликий объект object.

Описание:

Встроенный класс object() возвращает новый безликий объект. Класс object() является базой для всех классов. В нем есть методы, общие для всех экземпляров классов Python.

Этот класс не принимает никаких аргументов.

Когда мы объявляем класс:

class MyClass():
    pass

то по сути MyClass наследуется от класса object.

Kласс object - это экземпляр типа type:

>>> isinstance(object, object)
# True
>>> isinstance(type, object)
# True

Обратите внимание, что объект не имеет словаря __dict__, поэтому нельзя назначить произвольные атрибуты экземпляру класса object().

Примеры использования object.

>>> obj = object()
>>> obj
# <object object at 0x7f5c7fa933e0>
>>> dir(obj)
# ['__class__', '__delattr__', '__dir__', '__doc__', 
# '__eq__', '__format__', '__ge__', '__getattribute__',
# '__gt__', '__hash__', '__init__', '__init_subclass__',
# '__le__', '__lt__', '__ne__', '__new__', '__reduce__', 
# '__reduce_ex__', '__repr__', '__setattr__', 
# '__sizeof__', '__str__', '__subclasshook__']

# К слову о наследовании всех классов 
# от базового класса `object`.
>>> class MyClass():
...     pass
... 

>>> obj = MyClass()
>>> obj
<__main__.MyClass object at 0x7f5c7b8efcf8>

# Экземпляр класса MyClass уже включает все 
# базовые методы определенные в классе 'object'
>>> dir(obj)
# ['__class__', '__delattr__', '__dict__', '__dir__', 
# '__doc__', '__eq__', '__format__', '__ge__', 
# '__getattribute__', '__gt__', '__hash__', '__init__', 
# '__init_subclass__', '__le__', '__lt__', '__module__', 
# '__ne__', '__new__', '__reduce__', '__reduce_ex__', 
# '__repr__', '__setattr__', '__sizeof__', '__str__',
# '__subclasshook__', '__weakref__']

В следующем примере будем использовать экземпляры класса object в качестве значений для перечислений Color.

>>> from enum import Enum
>>> class Color(Enum):
...     RED = object()
...     GREEN = object()
...     BLUE = object()
... 

>>> Color.RED
# <Color.RED: <object object at 0x7f5c7fa933a0>>
>>> Color.RED.value
# <object object at 0x7f5c7fa933a0>
>>> Color.GREEN
# <Color.GREEN: <object object at 0x7f5c7fa933b0>>
>>> Color.RED.value
# <object object at 0x7f5c7fa933b0>
>>> Color.BLUE
# <Color.BLUE: <object object at 0x7f5c7fa933c0>>