Ctrl K
Python · Middle · Теория

В проекте подключили mypy, и нужно типизировать функцию, которая принимает любой объект с методом read. Вы опишете этот тип через Protocol или через абстрактный базовый класс — и чем они отличаются?

~4 мин голосом

Как подойти

Проверяют, понимает ли кандидат разницу между структурной (Protocol) и номинальной (ABC) типизацией в Python, что из этого проверяет mypy, а что интерпретатор в рантайме, и умеет ли выбрать подходящий инструмент под задачу «любой объект с методом read».

Встречал этот вопрос на настоящем собесе?
Ответов0
Средний балл—
Сильных—
Тренировали0
Темы
Похожие вопросыЗачем в Python нужны аннотации типов, если язык динамический? Проверяются ли они при выполнении программы? JuniorКогда вы выбираете typing.Protocol, а когда абстрактный базовый класс? И как вы в целом выстраиваете работу с типизацией и mypy в большом проекте? Senior

Ответь голосом

Интервьюер задаст этот вопрос и послушает. Думай вслух, проси подсказку, если нужно. Закончил — пауза или «Я ответил», через минуту здесь балл и какие пункты закрыты.

Войти, чтобы ответить

Лучше в наушниках · ~4 мин