Ответ
В Python 3 любой класс, у которого явно не указан родитель, по умолчанию неявно наследуется от базового класса object
.
Это обеспечивает классу доступ к фундаментальным методам, таким как __init__
, __str__
, __repr__
и другим, формируя основу объектной модели Python.
Пример:
# Этот класс неявно наследуется от object
class MyClass:
pass
# Это эквивалентная, но более явная запись
class MyClassExplicit(object):
pass
# Проверка подтверждает наследование
print(issubclass(MyClass, object))
# Вывод: True
Исторический контекст:
Это поведение стало стандартом в Python 3. В Python 2 для создания классов "нового стиля" (new-style classes), которые наследуются от object
, требовалось явное указание: class MyClass(object):
. Классы без этого наследования назывались классами "старого стиля" и имели другую модель поведения.