TGViewer
Библиотека питониста | Python, Django, Flask Библиотека питониста | Python, Django, Flask @pyproglib · 37.3K subscribers
Post #7407 3.77K
➡️ Static Protocols в Python: поведение важнее наследования

Static Protocols — это способ описывать типы через поведение, а не через иерархию классов.

Вместо проверки isinstance или наследования от абстрактных базовых классов, мы говорим: если объект умеет делать нужное — он подходит.


➡️ Это особенно полезно в реальных проектах, где наследование быстро приводит к жёсткой связанности и сложным деревьям классов. Протоколы позволяют писать код, который остаётся гибким и при этом безопасным: статические анализаторы вроде mypy, pyright или ty проверяют совместимость ещё до запуска программы.

➡️ В отличие от обычного duck typing, static protocols работают на этапе разработки. IDE подсказывает ошибки в сигнатурах методов, автодополнение становится точнее, а несовместимые объекты отсекаются заранее. При этом код остаётся простым и не требует изменений существующих классов.

➡️ На практике это отлично ложится на ML-пайплайны, API и плагины. Например, разные модели могут реализовывать одно и то же поведение (`predict`, `predict_top_k`) без общего базового класса. Один разработчик пишет функциональный код, другой — объектно-ориентированный, а всё продолжает работать вместе.

➡️ Важно помнить, что static protocols не проверяются на runtime, если специально не включать @runtime_checkable. Их задача — помочь проектировать систему и ловить ошибки раньше, а не валидировать данные в продакшене.

👉 Подробно, с примерами и нюансами — в статье

📍 Навигация: Вакансии • Задачи • Собесы

🐸 Библиотека питониста

#буст
  • 👍 6
  • ❤ 3
More from @pyproglib
  1. Oct 3, 2026📚Напоминаем про наш полный курс «Самоучитель по Python для начинающих» Мы написали и собр…
  2. Oct 2, 2026🎹 Что делать после ChatGPT? Следующий шаг — AI-агенты. Они не просто отвечают на запросы,…
  3. Sep 30, 2026🔥 Последний день для разработчиков AI уже пишет код. Теперь важнее научиться встраивать е…
  4. Sep 25, 2026🔥 Курс «ИИ для разработчиков» уже стартовал И мы решили открыть первое занятие всем — мож…
  5. Sep 20, 2026👻 94% токенов уходят не на код Анализ запусков показал: основная часть токенов уходит на…
  6. Sep 19, 2026📚Напоминаем про наш полный курс «Самоучитель по Python для начинающих» Мы написали и собр…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →