Встречается на 1% собеседований по Python
Какие плюсы и минусы интерфейса на основе абстрактного класса в 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
интервью вопросы и ответы