Встречается на собеседованиях • сегодня

Какие плюсы и минусы интерфейса на основе абстрактного класса в Python

Плюсы:

  • Четко определяет контракт для подклассов, что улучшает читаемость и поддерживаемость кода.
  • Запрещает создание экземпляров абстрактного класса, предотвращая ошибки.
  • Позволяет использовать @abstractmethod для обязательной реализации методов.

Минусы:

  • Жесткая связь между классами, усложняющая изменение иерархии.
  • Требует наследования, что может быть неудобно в случаях, когда класс уже наследует другой.
  • Нет поддержки множественного наследования интерфейсов (как в Protocol).

Пример:

python
from abc import ABC, abstractmethod

class Animal(ABC):
    @abstractmethod
    def make_sound(self):
        pass

class Dog(Animal):
    def make_sound(self):
        return "Woof!"

# Animal()  # Ошибка: нельзя создать экземпляр абстрактного класса
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы