О курсе

Курс «Тотальный ООП на Python» от ProPractic задуман как объединение трёх отдельных тем в один учебный материал. Первая часть посвящена основам объектно-ориентированного подхода в Python. В ней разбираются базовые концепции: классы и экземпляры, атрибуты, методы (экземпляра, класса и статические), конструкторы __init__ и __new__, магические методы, перегрузка операторов сравнения, инкапсуляция с модификаторами доступа, геттеры и сеттеры, полиморфизм, датаклассы, наследование (включая множественное и многоуровневое), абстрактные классы, разрешение конфликтов наследования через MRO, проверка типов с помощью isinstance() и issubclass(), а также миксины. Отдельное внимание уделяется правилам именования и работе с атрибутами через attr и __dict__.

Вторая часть знакомит с унифицированным языком моделирования UML и синтаксисом PlantUML для построения диаграмм. Рассматриваются диаграммы последовательности, классов, компонентов и деятельности. На их основе происходит знакомство с паттернами проектирования без привязки к конкретному языку программирования. В планах автора — рассмотреть такие паттерны, как Одиночка, Строитель, Абстрактная фабрика, Фабричный метод, Компонент, Фасад, Прокси, Стратегия, Состояние, Декоратор и Наблюдатель.

Третья часть соединяет материал первых двух частей и посвящена применению паттернов проектирования в Python. Примеры варьируются от простых (строитель пиццы, фабрика матрёшек) до более сложных сценариев. Раздел разделён на три уровня сложности: от абстрактных примеров до жизненных ситуаций. По описанию автора, материал подаётся так, как он обычно демонстрируется студентам на трёхчасовых лекциях.

Что рассматривается в программе

  • Рассматривается создание классов, работа с атрибутами экземпляра и класса, методами разных типов.
  • Разбираются магические методы, перегрузка операторов сравнения и сериализация через repr.
  • Изучается инкапсуляция, геттеры и сеттеры, полиморфизм и датаклассы.
  • Рассматривается наследование, включая множественное, абстрактные классы, MRO и миксины.
  • Осваивается построение диаграмм UML (последовательности, классов, компонентов, деятельности) и синтаксис PlantUML.
  • Разбираются паттерны проектирования: Одиночка, Строитель, Абстрактная фабрика, Фабричный метод, Компонент, Фасад, Прокси, Стратегия, Состояние, Декоратор, Наблюдатель.
  • Показывается применение паттернов в Python на примерах разного уровня сложности.

Кому может быть полезен курс

  • Тем, кто уже знаком с базовым Python, функциональным стилем и аннотациями типов, но испытывает сложности с поддержкой и расширением своих скриптов.
  • Тем, кто хочет выйти за рамки простых учебных примеров с наследованием и изучить более продвинутые концепции ООП.
  • Специалистам, которым нужно ознакомиться с языком UML и синтаксисом PlantUML для визуализации архитектуры.
  • Тем, кто интересуется паттернами проектирования и их применением в Python.

Вопросы о программе

Какие части включает курс?

Курс состоит из трёх частей: основы ООП на Python, UML и паттерны проектирования с примерами на Python.

Нужно ли знать Python перед началом?

В описании указано, что для прохождения курса требуются базовые знания Python, знакомство с функциональным стилем и аннотациями типов.

Какие паттерны проектирования рассматриваются?

В планах курса — Одиночка, Строитель, Абстрактная фабрика, Фабричный метод, Компонент, Фасад, Прокси, Стратегия, Состояние, Декоратор и Наблюдатель.

Изучается ли UML и PlantUML?

Да, вторая часть курса посвящена языку UML и синтаксису PlantUML для построения диаграмм.