- 1.1 Введение в типизацию: зачем, когда и как?
- Динамическая и статическая типизация: плюсы и минусы
- Типизация в Python: история и эволюция
- Инструменты для статической типизации: mypy, PyCharm, другие
- 1.2 Базовые типы данных:
- int, float, str, bool: основы работы с типами
- None: отсутствие значения и его особенности
- Duck typing: неявная типизация в Python
- 1.3 Коллекции и их типизация:
- list, tuple, dict, set: работа с коллекциями
- Типизация коллекций: List[int], Tuple[str, int], Dict[str, float]
- Генераторы и итераторы: типизация и особенности
- 1.4 Функции и типизация:
- Аннотация типов для аргументов и возвращаемого значения
- Перегрузка функций и типы
- Callable: работа с функциональными объектами
- 1.5 Классы и типизация:
- Аннотация типов для атрибутов класса
- Методы класса и типизация
- Наследование и типизация: как типы взаимодействуют с наследованием
- 2.1 Типизация с ипользованием TypeVar:
- Создание универсальных функций и классов
- Ограничение типов с помощью TypeVar
- Практические примеры использования TypeVar
- 2.2 Типы объединений и опциональные типы:
- Работа с переменными, которые могут иметь разные типы
- Использование Optional для обозначения возможности отсутствия значения
- 2.3 Типы псевдонимов:
- Создание собственных имён для сложных типов
- Повышение читаемости и удобства работы с кодом
- 2.4 Типы Any, NoReturn:
- Any: отключение проверки типов для конкретной переменной
- NoReturn: указание на то, что функция не возвращает значение
- 2.5 Типы протоколов:
- Определение интерфейсов для классов без явного наследования
- Structural typing: проверка типов по структуре, а не по имени
- 3.1 Интеграция mypy в рабочий процесс:
- Настройка mypy для проверки типов в проекте
- Интерпретация ошибок mypy и их исправление
- 3.2 Stub файлы:
- Что это такое и зачем нужны?
- Как типизировать сторонние модули
- Генерация stub файлов
Important
Если вам понравился этот курс, и вы подчерпнули из него что-то новое, пожалуйста, поддержите этот репозиторий звёздочкой. Мне будет очень приятно :)