Каталог/назад к курсам
Python для продвинутых: ООП, типизация и тестирование
PythonСредний

Python для продвинутых: ООП, типизация и тестирование

Практический курс-мост от базового Python к разработке поддерживаемых приложений. Вы разберётесь со структурой пакетов, объектной моделью, современной типизацией и автоматическими тестами, а затем соедините эти инструменты в небольшом приложении с хранением данных и логированием.

7 модулей • 36 уроков229 заданий с проверкойоколо 40 ч
Код в браузере: PythonСвободный темпСертификат с проверкой

О курсе

Курс учит превращать набор работающих скриптов в понятный Python-проект. Сначала вы настроите окружение и структуру пакета, разберёте абсолютные импорты, публичный API и циклические зависимости. Затем построите объектную модель: от классов, property и специальных методов до композиции, наследования, ABC, dataclass и Enum.

Во второй половине курса вы добавите аннотации типов и mypy, освоите TypeVar, Generic и Protocol, а после — полноценное тестирование с pytest: параметризацию, fixtures, tmp_path, stub, monkeypatch, mock и регрессионные тесты. Завершающие уроки связывают pathlib, JSON, CSV, Repository, конфигурацию и логирование в единый небольшой трекер задач.

Чему научитесь

  • Организовывать Python-код в пакеты с понятным публичным API и корректными импортами.
  • Проектировать объектные модели с композиционным и полиморфным поведением.
  • Применять dataclass, Enum, собственные исключения и специальные методы.
  • Описывать контракты через современную типизацию, Generic и Protocol и проверять их mypy.
  • Писать содержательные тесты pytest с параметризацией, fixtures, stub, mock и monkeypatch.
  • Отделять бизнес-логику от файлового хранения через Repository.
  • Собирать небольшое типизированное приложение с конфигурацией, логированием и тестами.

Для кого

  • Разработчики, аналитики и инженеры после базового курса Python.

Формат

  • 36 последовательных уроков в 7 модулях.
  • 188 тестовых вопросов с автоматической проверкой.
  • 36 практических задач с исполняемыми hidden-тестами.
  • Итоговая работа — компактный типизированный трекер задач.

Что нужно на старте

  • Уверенное владение базовым синтаксисом Python: условия, циклы, функции и коллекции.
  • Базовая работа с модулями, исключениями и текстовыми файлами.
  • Умение запускать Python-скрипты и устанавливать пакеты по инструкции.
#python#ооп#типизация#pytest#mypy#тестирование

Автор курса

Алексей Малышкин

Разрабатываю образовательные материалы по программированию, машинному обучению и анализу данных. Темы: Python-разработка, аналитика, ML-инструменты (LangChain, vector databases, AI agents), компьютерное зрение. Стараюсь объяснять технические концепции понятно и структурировано. Ранее преподавал на Stepik и обучил более 2000 студентов. Мой профиль на Stepik - https://stepik.org/users/273781420/profile Мой телеграм для связи @alexey_latorn

Программа

01Рабочее окружение и структура проекта5 уроков
1Виртуальное окружение: создание, активация и установка зависимостей
2pyproject.toml, editable install и воспроизводимый запуск
3Пакет из нескольких модулей и абсолютные импорты
4Публичный фасад пакета: __init__.py, соглашения _name и __all__
5Циклические зависимости: частично инициализированный модуль и исправление направления зависимостей
02Полезные идиомы Python для проектного кода2 урока
03Объектно-ориентированное программирование12 уроков
1Класс, __init__, атрибуты экземпляра и методыпробный
2Инкапсуляция: соглашения, name mangling, property и защита инвариантов
3classmethod, staticmethod и выбор между ними и обычным методом
4Специальные методы: __repr__, __str__, __eq__, __len__пробный
5Собственные исключения предметной области
6Dataclass, NamedTuple и выбор структуры данных
7Enum для конечного набора состояний
8Композиция: сборка поведения из нескольких объектов
9Наследование, super() и переопределение методовпробный
10Абстрактные классы: ABC и abstractmethod
11Полиморфизм через общий интерфейс
12Рефакторинг процедурного кода в объектную модель
04Система типов и статическая проверка5 уроков
1Аннотации функций, методов и атрибутов классов; запуск mypy
2Optional, Union, Literal и алиасы типов
3Обобщённые типы: TypeVar и Generic
4Структурные интерфейсы через Protocol
5Formatter, linter и mypy в связке: роли и исправление дефектов
05Тестирование с pytest7 уроков
1Первые тесты на pytest: нормальные сценарии, граничные случаи и исключенияпробный
2Параметризация тестов через @pytest.mark.parametrize
3Fixtures: подготовка тестового состояния и области видимости
4tmp_path: тестирование файловых операций во временной директории
5Тестируемый дизайн: явная зависимость и простой stub
6monkeypatch и unittest.mock: контролируемая подмена времени и случайности
7Регрессионный тест: воспроизвести дефект, исправить и подтвердить
06Файловый ввод-вывод, хранение данных и логирование4 урока
1pathlib: безопасная работа с путями и файловой системой
2JSON и CSV: загрузка, проверка и сохранение структурированных данных
3Repository: отделение хранения данных от бизнес-логики
4Конфигурация приложения и логирование
07Итоговый проект1 урок
1Итоговая работа: небольшой трекер задач как Python-пакет
Открытые материалы