669просмотров
11.1%от подписчиков
12 марта 2026 г.
questionScore: 736
Когда выбирать typing.Protocol вместо ABC и какие есть ограничения? Protocol — для структурной типизации («утиная» совместимость) без наследования: достаточно совпадения сигнатур. Работает на уровне тайпчекера; для рантайм-проверок нужен @runtime_checkable и только isinstance/issubclass. Не хранит состояние и не навязывает реализацию — идеален для плагинных интерфейсов. Библиотека собеса по Python