Как в Python объявить, что один класс наследует от другого (родительского) класса?

«Как в Python объявить, что один класс наследует от другого (родительского) класса?» — вопрос из категории Основы программирования, который задают на 10% собеседований QA Тестировщик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

В Python наследование реализуется путем указания родительского класса (или классов) в круглых скобках () после имени дочернего класса в его объявлении.

Базовый синтаксис:

class ParentClass:
    # Атрибуты и методы родительского класса
    pass

class ChildClass(ParentClass):  # ChildClass наследует от ParentClass
    # Атрибуты и методы дочернего класса
    pass

Ключевые моменты:

  1. Явное наследование: Класс в скобках — это родительский (базовый, суперкласс).
  2. Неявное наследование: Если скобки опущены, класс неявно наследует от встроенного класса object (в Python 3).
    class MyClass:  # Эквивалентно class MyClass(object):
        pass
  3. Множественное наследование: Можно указать несколько родительских классов через запятую.
    class DerivedClass(BaseClass1, BaseClass2, MixinClass):
        pass
  4. Доступ к родительскому классу: Для вызова методов родителя из дочернего класса используется функция super().

    class Parent:
        def __init__(self, name):
            self.name = name
    
    class Child(Parent):
        def __init__(self, name, age):
            super().__init__(name)  # Вызов __init__ родителя
            self.age = age