Приведите пример принципа разделения интерфейсов в стандартной библиотеке Python.

Пример — небольшие протоколы collections.abc: Iterable, Sized и Container описывают отдельные возможности. Клиент может требовать только нужную операцию, а не большой универсальный интерфейс.

Короткий ответ

Что ответить на собеседовании

Пример — небольшие протоколы collections.abc: Iterable, Sized и Container описывают отдельные возможности. Клиент может требовать только нужную операцию, а не большой универсальный интерфейс.

Подробный разбор

Ответ с пояснениями

Пример — небольшие протоколы collections.abc: Iterable, Sized и Container описывают отдельные возможности. Клиент может требовать только нужную операцию, а не большой универсальный интерфейс.

Функции, которая лишь перебирает элементы, достаточно Iterable; ей не обязательно требовать индексацию, изменение и удаление. Если нужна длина — это отдельная способность Sized, проверка принадлежности — Container. Более широкие абстракции объединяют возможности по смыслу. Это иллюстрация Interface Segregation Principle, а не доказательство, что любой класс стандартной библиотеки идеально ему соответствует. Важна минимальная зависимость клиента от ненужных методов.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее