Python для продвинутых: ООП, типизация и тестированиеОткрытые материалыType hints и mypy в Python: практическая типизация

Type hints и mypy в Python: практическая типизация

Уроки курсаType hints и mypy в Python: практическая типизация

Где заканчивается статическая типизация

Данные из JSON, формы или базы остаются недоверенными. Анализатор верит объявленной сигнатуре функции загрузки, но не проверяет содержимое HTTP-ответа во время работы. На внешней границе нужна runtime-валидация; после неё типизированный объект можно безопаснее передавать внутри системы.

Избегайте широкого Any: он выключает проверку и распространяется по вызовам. Если тип пока неизвестен, object заставляет явно проверить его перед использованием. Точечный # type: ignore[code] лучше безусловного ignore, потому что фиксирует конкретное исключение.

Цель mypy — не максимальное число аннотаций, а более дешёвое изменение кода. Типы особенно окупаются в публичных функциях, моделях состояния и местах, где много вариантов результата.