Omnex.Study
Курсы / Программирование
🧩

ООП на Python: думай объектами

От «что такое self» до проектирования систем и паттернов: научись думать объектами и пройди собеседование по ООП без запинки.

Средний уровень30 часов модулей уроковДоступ навсегда
4 9907 990
Начать бесплатно — первый модуль в подарок

Разовая оплата, без подписки. Школьнику курс покупает родитель из кабинета parents.omnex.study.

О КУРСЕ

Ты уже пишешь на Python: циклы, функции, списки и словари — не проблема. Но стоит проекту вырасти до нескольких сотен строк, как код превращается в клубок из глобальных переменных и функций, которые передают друг другу всё подряд. Знакомо? Это стеклянный потолок процедурного стиля. Пробить его помогает одна идея — **думать объектами**.

Этот курс — про то, как перестать бояться слова «класс» и начать проектировать. Мы пройдём весь путь: от первого `__init__` и `self` до абстрактных классов, магических методов, dataclasses и паттернов проектирования. Никакой воды и заученных определений — каждый урок это маленький рабочий пример, который ты можешь запустить прямо сейчас, и разбор «почему так, а не иначе». Ты научишься не просто писать классы, а выбирать: где нужно наследование, а где композиция; когда `@property`, а когда обычный атрибут; зачем существуют `__eq__` и `__hash__` и что будет, если забыть про второй.

За курс ты соберёшь **5 проектов в портфолио**: иерархию сотрудников HR-системы, полноценный класс `Money` с арифметикой, модель данных интернет-магазина на dataclasses, платёжную систему на паттернах и капстоун — трекер задач с тестами. Отдельный модуль посвящён SOLID и паттернам, а финал — подготовке к собеседованию: разберём вопросы, на которых спотыкается большинство кандидатов уровня middle.

ООП — это не «ещё одна тема», а язык, на котором говорят все большие проекты: Django, FastAPI, pandas, стандартная библиотека Python. Освоив его, ты перестанешь быть автором скриптов и станешь инженером, который проектирует системы. Именно за это платят senior-зарплату — и именно этому мы научимся.

РЕЗУЛЬТАТ

Чему научишься.

ПРОГРАММА

модулей, уроков.

01

Модуль 1. Мышление объектами

Бесплатный модуль

Зачем нужно ООП, чем класс отличается от объекта, как устроены __init__, self, методы и атрибуты. Пишем первые классы своими руками.

  • Почему процедурный код рушится на больших проектахТеория · 26 мин
  • Класс и объект: чертёж и его экземплярыТеория · 24 мин
  • __init__ и атрибуты экземпляраТеория · 26 мин
  • Методы и self: поведение объектаТеория · 26 мин
  • Практикум: класс Player для игрыПрактика · 35 мин
  • Атрибуты класса против атрибутов экземпляраТеория · 26 мин
  • Квиз: мышление объектамиТест · 15 мин
02

Модуль 2. Инкапсуляция: прячем данные правильно

Зачем прятать состояние объекта, чем отличаются _protected и __private, как работает name mangling, @property, сеттеры с валидацией и человеческое представление объекта через __str__ и __repr__.

  • Инкапсуляция: зачем прятать данныеТеория · 25 мин
  • _protected и __private: соглашения и name manglingТеория · 26 мин
  • @property: геттер по-питоновскиТеория · 25 мин
  • Сеттеры и валидация: контроль на входеТеория · 26 мин
  • Практикум: класс Temperature с валидациейПрактика · 35 мин
  • __str__ и __repr__: человеческое лицо объектаТеория · 25 мин
  • Практикум: класс Time с валидацией и представлениемПрактика · 35 мин
  • Квиз: инкапсуляцияТест · 15 мин
03

Модуль 3. Наследование: не повторяй себя

Как строить классы на основе других, переиспользовать код через super(), проверять типы с isinstance, разбираться в множественном наследовании и MRO, применять миксины. Финал — иерархия сотрудников в портфолио.

  • Наследование: базовый и дочерний классТеория · 26 мин
  • super() и переопределение методовТеория · 26 мин
  • isinstance, issubclass и проверка типовТеория · 24 мин
  • Множественное наследование и MROТеория · 27 мин
  • Миксины: поведение кусочкамиТеория · 25 мин
  • Проект: иерархия сотрудников для HR-системыПроект · 55 мин
  • Квиз: наследованиеТест · 16 мин
04

Модуль 4. Полиморфизм и магия dunder-методов

Полиморфизм и утиная типизация, равенство объектов через __eq__ и __hash__, перегрузка операторов, протоколы контейнеров (__len__, __getitem__, __contains__) и вызываемые объекты. Проект — полноценный класс Money.

  • Полиморфизм и утиная типизацияТеория · 25 мин
  • __eq__ и __hash__: равенство объектовТеория · 26 мин
  • Перегрузка операторовТеория · 26 мин
  • Протоколы контейнеров: len, индексы и inТеория · 26 мин
  • __call__: объект как функцияТеория · 24 мин
  • Проект: класс Money с арифметикойПроект · 55 мин
  • Квиз: полиморфизм и dunder-методыТест · 16 мин
05

Модуль 5. Абстракция, композиция и методы класса

Композиция против наследования, абстрактные классы (ABC), фабричные методы через @classmethod, @staticmethod, а также структурная типизация с typing.Protocol. Два практикума: система уведомлений и плагины.

  • Композиция против наследованияТеория · 26 мин
  • Абстрактные классы: ABC и abstractmethodТеория · 26 мин
  • @classmethod и фабричные методыТеория · 25 мин
  • @staticmethod: когда метод не про объектТеория · 23 мин
  • Практикум: система уведомлений на композицииПрактика · 35 мин
  • Duck typing и typing.ProtocolТеория · 25 мин
  • Практикум: плагины-обработчики через ProtocolПрактика · 35 мин
  • Квиз: абстракция и композицияТест · 16 мин
06

Модуль 6. Современный ООП-инструментарий

dataclasses против ручного boilerplate, field/frozen/default_factory, перечисления Enum, экономия памяти через __slots__, собственные классы исключений и их иерархии. Проект — модель данных интернет-магазина.

  • @dataclass: классы без boilerplateТеория · 25 мин
  • field, frozen и default_factoryТеория · 26 мин
  • Enum: именованные константыТеория · 24 мин
  • __slots__: экономим памятьТеория · 24 мин
  • Проект: модель данных интернет-магазинаПроект · 55 мин
  • Кастомные исключения как классыТеория · 25 мин
  • Практикум: иерархия исключений для API-клиентаПрактика · 35 мин
  • Квиз: современный инструментарийТест · 16 мин
07

Модуль 7. Проектирование: SOLID и паттерны

Пять принципов SOLID на понятных примерах и три рабочих паттерна проектирования — Фабрика, Стратегия, Наблюдатель. Финал модуля — платёжная система, собранная на паттернах.

  • SOLID часть 1: SRP и OCPТеория · 26 мин
  • SOLID часть 2: LSP, ISP и DIPТеория · 26 мин
  • Паттерн «Фабрика»Теория · 25 мин
  • Паттерн «Стратегия»Теория · 25 мин
  • Паттерн «Наблюдатель»Теория · 25 мин
  • Проект: платёжная система на паттернахПроект · 55 мин
  • Квиз: SOLID и паттерныТест · 16 мин
08

Модуль 8. Финал: большой проект и собеседование

Как проектировать систему классов от идеи к коду, тестировать ООП на unittest, разбор вопросов с собеседований, подача ООП в портфолио и типичные антипаттерны. Капстоун — трекер задач, собирающий весь курс.

  • Проектируем систему классов: от идеи к кодуТеория · 26 мин
  • Тестируем ООП-код на unittestТеория · 26 мин
  • Капстоун: трекер задачПроект · 60 мин
  • Топ вопросов на собеседовании по ООПТеория · 27 мин
  • ООП в портфолио и на код-ревьюТеория · 25 мин
  • Частые ошибки и антипаттерны ООПТеория · 25 мин
  • Финальный квиз: думай объектамиТест · 18 мин
ИНСТРУМЕНТЫ

С чем будешь работать.

Python 3.11+VS Codeмодули стандартной библиотеки: dataclasses, abc, enum, typing, functoolsunittestаннотации типов (type hints)Git и GitHub

ООП на Python: думай объектами: первый модуль — бесплатно.

Начать бесплатно — первый модуль в подарок
ООП на Python: думай объектами | Omnex.Study