object()

Функция (на самом деле класс) object — корень иерархии всех классов Python. Любой класс по умолчанию наследуется от object. Вызов object() создаёт «пустой» экземпляр без атрибутов, у которого нельзя ни добавить новые поля, ни задать __dict__.

Сигнатура

object()

Параметры: нет.

Возвращает: новый экземпляр базового класса object.

Примеры

Создание базового объекта:

o = object()
print(type(o))
print(o)
<class 'object'>
<object object at 0x...>

Любой класс — наследник object:

class Robot:
    pass

print(issubclass(Robot, object))
print(issubclass(int, object))
print(issubclass(str, object))
True
True
True

Использование как «уникального маркера» (sentinel):

MISSING = object()

def get(value=MISSING):
    if value is MISSING:
        return "значение не передано"
    return f"значение: {value}"

print(get())
print(get(None))
значение не передано
значение: None

К экземпляру object нельзя добавить атрибут:

o = object()
try:
    o.x = 5
except AttributeError as e:
    print("ошибка:", e)
ошибка: 'object' object has no attribute 'x'

Базовые методы __eq__ и __hash__ сравнивают по идентичности:

a = object()
b = object()
print(a == a)
print(a == b)
True
False

См. также

Примечание

Описание основано на официальной документации Python (docs.python.org), распространяемой под лицензией PSF License v2. © Python Software Foundation.