Встречается на собеседованиях • сегодня
Когда лучше создавать интерфейс на основе абстрактного класса в Python
Абстрактные классы в Python (ABC из модуля abc) стоит использовать, когда:
- Нужно определить общий интерфейс для группы классов, но реализация методов должна быть разной у наследников.
- Требуется гарантировать, что все подклассы реализуют определенные методы (с помощью
@abstractmethod). - Логически группируете связанные классы с общим поведением.
Пример:
python
from abc import ABC, abstractmethod
class Animal(ABC):
@abstractmethod
def make_sound(self):
pass
class Dog(Animal):
def make_sound(self):
return "Woof!"
class Cat(Animal):
def make_sound(self):
return "Meow!"
# animal = Animal() # Ошибка: нельзя создать экземпляр абстрактного класса
dog = Dog()
print(dog.make_sound()) # "Woof!"Когда не использовать:
- Если методы можно реализовать по умолчанию (лучше обычный класс с
passилиNotImplementedError). - Для простых случаев, где хватит протоколов (
typing.Protocol) или duck typing.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы