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

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

Бесплатный курс после основ Python: превратите набор скриптов в приложение с понятной структурой, типами и тестами. ООП, mypy, pytest, работа с файлами и логирование. Итоговый проект — трекер задач; практические решения проверяются автоматически.

  • 7 модулей
  • 36 уроков
  • 229 заданий с проверкой
  • ≈ 40 часов обучения

Практика в браузере

Пишите и запускайте код прямо в уроке — редактор уже настроен. Ничего устанавливать не нужно.

Именной сертификат

После прохождения курса добавьте сертификат в резюме или портфолио. Работодатель сможет проверить его по ссылке.

О курсе

Бесплатный практический курс для следующего шага после основ Python. Вы уже умеете писать скрипты — здесь научитесь собирать из них приложение, которое удобно дополнять и проверять. Итоговая работа — трекер задач с файловым хранением, типами, логированием и тестами.

От работающего скрипта к приложению

Разнесёте код по модулям, научитесь выбирать между классом, dataclass и обычной функцией, отделите обработку данных от их хранения. Аннотации типов и mypy помогут находить несовместимые данные, а тесты pytest — замечать, что новая правка сломала старое поведение.

Самостоятельная практика с проверкой

В программе 36 уроков и 36 практических задач с кодом, который проверяется исполняемыми тестами. Отдельные вопросы закрепляют объяснения. Вы поработаете с композицией и наследованием, Generic и Protocol, fixtures, mock и monkeypatch, файлами JSON и CSV. Учиться можно в своём темпе.

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

Дальше можно собрать свой backend на бесплатном курсе FastAPI или пойти в Python для профессионалов, если хотите глубже разобраться в возможностях языка.

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

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

Для кого

  • Знаете функции, циклы и коллекции Python и ищете следующий шаг после начального курса.
  • Пишете рабочие скрипты, но хотите разнести код по модулям и менять его без страха всё сломать.
  • Понимаете синтаксис классов, но хотите разобраться, когда применять композицию, наследование и dataclass.
  • Готовитесь к backend-разработке и хотите освоить pytest, аннотации типов и структуру приложения.

Формат

  • 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-пакет

Отзывы

3 отзыва
Анастасия Ждановасентябрь 2026

Полезный курс

vaska_404август 2026

После начального Python хороший следующий шаг. Тесты уже пробую писать для своих задач.

Татьянаиюль 2026

Мне понравилось

Дополнительные материалы и практика

Задачи

Все задачи курса

Уроки

Статьи