От «что такое self» до проектирования систем и паттернов: научись думать объектами и пройди собеседование по ООП без запинки.
Разовая оплата, без подписки. Школьнику курс покупает родитель из кабинета parents.omnex.study.
Ты уже пишешь на Python: циклы, функции, списки и словари — не проблема. Но стоит проекту вырасти до нескольких сотен строк, как код превращается в клубок из глобальных переменных и функций, которые передают друг другу всё подряд. Знакомо? Это стеклянный потолок процедурного стиля. Пробить его помогает одна идея — **думать объектами**.
Этот курс — про то, как перестать бояться слова «класс» и начать проектировать. Мы пройдём весь путь: от первого `__init__` и `self` до абстрактных классов, магических методов, dataclasses и паттернов проектирования. Никакой воды и заученных определений — каждый урок это маленький рабочий пример, который ты можешь запустить прямо сейчас, и разбор «почему так, а не иначе». Ты научишься не просто писать классы, а выбирать: где нужно наследование, а где композиция; когда `@property`, а когда обычный атрибут; зачем существуют `__eq__` и `__hash__` и что будет, если забыть про второй.
За курс ты соберёшь **5 проектов в портфолио**: иерархию сотрудников HR-системы, полноценный класс `Money` с арифметикой, модель данных интернет-магазина на dataclasses, платёжную систему на паттернах и капстоун — трекер задач с тестами. Отдельный модуль посвящён SOLID и паттернам, а финал — подготовке к собеседованию: разберём вопросы, на которых спотыкается большинство кандидатов уровня middle.
ООП — это не «ещё одна тема», а язык, на котором говорят все большие проекты: Django, FastAPI, pandas, стандартная библиотека Python. Освоив его, ты перестанешь быть автором скриптов и станешь инженером, который проектирует системы. Именно за это платят senior-зарплату — и именно этому мы научимся.
Зачем нужно ООП, чем класс отличается от объекта, как устроены __init__, self, методы и атрибуты. Пишем первые классы своими руками.
Зачем прятать состояние объекта, чем отличаются _protected и __private, как работает name mangling, @property, сеттеры с валидацией и человеческое представление объекта через __str__ и __repr__.
Как строить классы на основе других, переиспользовать код через super(), проверять типы с isinstance, разбираться в множественном наследовании и MRO, применять миксины. Финал — иерархия сотрудников в портфолио.
Полиморфизм и утиная типизация, равенство объектов через __eq__ и __hash__, перегрузка операторов, протоколы контейнеров (__len__, __getitem__, __contains__) и вызываемые объекты. Проект — полноценный класс Money.
Композиция против наследования, абстрактные классы (ABC), фабричные методы через @classmethod, @staticmethod, а также структурная типизация с typing.Protocol. Два практикума: система уведомлений и плагины.
dataclasses против ручного boilerplate, field/frozen/default_factory, перечисления Enum, экономия памяти через __slots__, собственные классы исключений и их иерархии. Проект — модель данных интернет-магазина.
Пять принципов SOLID на понятных примерах и три рабочих паттерна проектирования — Фабрика, Стратегия, Наблюдатель. Финал модуля — платёжная система, собранная на паттернах.
Как проектировать систему классов от идеи к коду, тестировать ООП на unittest, разбор вопросов с собеседований, подача ООП в портфолио и типичные антипаттерны. Капстоун — трекер задач, собирающий весь курс.