Какой базовый класс по умолчанию у классов в Python?

Ответ

В 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):. Классы без этого наследования назывались классами "старого стиля" и имели другую модель поведения.