Check
Что такое абстрактный базовый класс (`abc.ABC`)? Как вы используете его для задания интерфейсов в приложении, и чем это отличается от duck typing?

Абстрактные базовые классы

Ответ 1 / 1

`abc.ABC` позволяет объявлять абстрактные методы через `@abstractmethod`, которые обязательно должны быть реализованы в подклассах. Пример: ```python from abc import ABC, abstractmethod class Storage(ABC): @abstractmethod def get(self, key: str) -> str: ... ``` ABC задаёт номинальный интерфейс (наследование), duck typing — структурный ("если выглядит как утка, то это утка"). В динамическом Python часто достаточно duck typing, но ABC удобны для явной контрактации и документации.