Чему вы научитесь
- Понимать, как работает статическая типизация в динамическом языке Python
- Добавлять аннотации типов для функций, переменных, коллекций и классов
- Настраивать и использовать mypy и Pyright для проверки кода
- Применять возможности модуля typing: Any, Literal, TypedDict, NewType, Self и другие
- Использовать Union-типы и корректно сужать типы в разных ветках программы
- Разрабатывать обобщенные функции и классы с помощью TypeVar и generics
- Типизировать callback-функции, декораторы, генераторы и асинхронный код
- Проектировать интерфейсы и зависимости с помощью Protocol
- Выбирать подходящую модель данных: TypedDict, NamedTuple, dataclass или обычный класс
- Внедрять типизацию в существующие проекты и постепенно переходить к строгой проверке
- Создавать типизированные публичные API и stub-файлы для библиотек
- Использовать Pydantic для валидации, преобразования и сериализации данных
- Разрабатывать сложные Pydantic-модели с валидаторами, настройками и TypeAdapter
- Понимать границу между статической типизацией и runtime-валидацией
О курсе
Для кого этот курс
Начальные требования
Для прохождения курса достаточно базового знания Python:
- синтаксис языка, переменные и условия
- функции и работа с аргументами
- списки, словари, множества и кортежи
- основы классов и объектно-ориентированного программирования
- умение устанавливать библиотеки и запускать Python-код
Предварительные знания модуля typing, mypy, Pyright и Pydantic не требуются. Все необходимые темы будут разобраны в курсе
Преподаватели курса
Как проходит обучение
Обучение строится по принципу теория → проверка знаний → практика. В каждом уроке вы познакомитесь с новой темой, разберете примеры кода и типичные ошибки.
Вас ждут тестовые задания для проверки понимания материала и практические задачи, составленные на основе изученных тем. Вы будете добавлять аннотации типов, исправлять ошибки статического анализатора, проектировать типизированные модели и работать с Pydantic
Что вы получите
- Практические навыки типизации Python, востребованные на собеседованиях и в работе разработчика
- Понимание современных подходов к созданию надежного и поддерживаемого Python-кода
- Умение применять typing, generics, Protocol, TypedDict и другие инструменты типизации
- Навыки работы с mypy, Pyright и строгой проверкой типов
- Практический опыт валидации и сериализации данных с помощью Pydantic
- Знания промышленного стандарта разработки: в современных production-проектах Аннотации типов и статический анализ стали важной частью командной разработки
- Готовность уверенно отвечать на вопросы о типизации на собеседованиях Python-разработчика