Встречается на собеседованиях • сегодня
Когда лучше создавать интерфейс на основе Protocol в Python
Протоколы (Protocol) в Python полезны, когда нужна структурная типизация (утиная типизация) с проверкой типов через mypy/pyright. Основные случаи:
- Для абстракции без наследования – когда нужно определить интерфейс, но не хочется использовать ABC или наследование:
python
from typing import Protocol
class Drawable(Protocol):
def draw(self) -> None: ...
def render(obj: Drawable) -> None:
obj.draw()
text
2. **Для обратной совместимости** – если класс уже реализует нужные методы, но не наследуется от общего абстрактного класса.
3. **Для аннотации callback-ов** – когда нужно описать ожидаемую сигнатуру функции:
```python
class Processor(Protocol):
def __call__(self, data: str) -> int: ...- Для работы с внешними библиотеками – когда нужно типизировать объекты, которые вы не контролируете.
Протоколы особенно полезны в сочетании с @runtime_checkable, если нужна проверка типов во время выполнения.

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