Класс object()
при вызове возвращает новый непомеченный объект, содержащий встроенные свойства и методы, используемые по умолчанию для всех классов. Этот класс является базовым для всех классов. Он имеет методы, общие для всех экземпляров класса в Python.
Синтаксис:
obj = object()
Как правило, класс объекта служит базовым классом для всех классов, в том числе определяемых пользователем. Поэтому все классы наследуются от класса object в Python. Он не принимает никаких аргументов.
Допустим, объявляя класс:
class MyClass():
pass
То неявным образом, мы наследуемся от класса object.
Класс object - это экземпляр типа type:
obj = object()
print(f'isinstance: {isinstance(object, object)} - {isinstance(type, object)}')
print(f'Type of obj: {type(obj)}')
print(f'Attribute: {dir(obj)}')
Результаты:
>>> isinstance: True - True
>>> Type of obj: <class 'object'>
>>> Attribute: ['__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__']
Мы создали объект obj, которому присвоили класс object()
. Определили его тип, атрибуты. Как и сказано было выше, объект obj не содержит атрибута __dict__
, поэтому мы не можем задать ему произвольные атрибуты.