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.