Встречается на собеседованиях • сегодня
Какие плюсы и минусы интерфейса на основе абстрактного класса в 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() # Ошибка: нельзя создать экземпляр абстрактного класса
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы