TGViewer
Zen of Python Zen of Python @zen_of_python · 18.8K subscribers
Post #5044 135
Чего не проверяет runtime_checkable Protocol

Protocol позволяет описать небольшой интерфейс: например, метод send(destination, message). Класс может удовлетворять ему без наследования — статический анализатор проверяет совместимость структуры и сигнатур.

Декоратор runtime_checkable добавляет возможность isinstance, но такая проверка не валидирует сигнатуры методов. Наличие атрибута send не доказывает, что он принимает нужные аргументы или выполняет обещанное действие.

Поэтому проверка плагина требует нескольких уровней: типизация помогает проверить код, тест контракта — поведение адаптера, схема — внешние данные. Аннотация quantity: int сама по себе не отвергает отрицательное число, а корректная схема заказа не доказывает, что товар есть на складе.

#python #типизация
More from @zen_of_python
  1. Oct 9, 2026Как добавить MCP-сервер в Django-проект django-mcpz позволяет зарегистрировать Python-функ…
  2. Oct 9, 2026Как дождаться обработки очереди asyncio Пустая очередь ещё не означает, что работа законче…
  3. Oct 9, 2026Почему frozendict не замораживает вложенные объекты В Python 3.15 появляется встроенный fr…
  4. Oct 8, 2026Почему цикл внутри теста скрывает часть ошибок Тест перебирает десять входов и проверяет р…
  5. Oct 8, 2026Как выполнять CPU-задачи в отдельных интерпретаторах Python В Python 3.14 InterpreterPoolE…
  6. Oct 8, 2026Как отличить отсутствие аргумента от None в Python Если None — допустимое значение настрой…
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 →