Типизация Python: аннотации, Protocol и TypeVar — задачи

Практика типизации Python: исправление аннотаций, Literal, Optional, TypeVar и Protocol.

Состав подборки: 6 задач на код. Условия и формат проверки указаны на странице каждой задачи.

Разберите маленький пример

Аннотация name: str описывает ожидаемый тип, но сама по себе не превращает число в строку и не проверяет HTTP-ввод. Отдельно решаются статическая совместимость интерфейса и проверка фактических данных во время выполнения.

На что обратить внимание

  • Для значения «может отсутствовать» продумайте ветку None, а не только запись типа.
  • Protocol описывает требуемые операции объекта; не подменяйте контракт проверкой имени класса.
  • Обобщённая функция должна сохранять обещанную связь между типами входа и результата.

Порядок практики

  1. Аннотации типов Python: исправьте класс OrderLine — код.
  2. Python: Форматировщик записей лога с Literal, X | None и TypeAlias — код.
  3. Python: Обобщённая функция first_and_last с TypeVar и bound — код.
  4. Protocol в Python: задача на структурные интерфейсы — код.
  5. Python: Классификатор строк диагностики по инструменту — код.
  6. Python-пакет с моделями и Protocol: итоговая задача — код.

Куда двигаться дальше

Чтобы связать типы с устройством проекта и тестами, посмотрите программу курса Python для продвинутых.

Практика классов и объектов.