О курсе
Это устаревшая версия курса, которая больше не поддерживается. Новый курс включает постоянные обновления, личные исследования, консультации, приват канал и много других полезных фишек. Подробней читайте здесь: https://www.zproger-school.com/
ООП - это парадигма, которая применяется практически во всех Python проектах. Невозможно представить хороший фреймворк или библиотеку, который не будет её использовать. Так как именно ООП позволяет создавать проекты, которые будут легко поддерживаться, легко читаться и масштабироваться.
Если вы планируете работать в команде, создавать стабильные и расширяемые приложения, тогда вам определенно нужно понимать ООП, причем не только его основы, а именно принцип его работы на глубоком уровне.
Этот курс идеально подходит для этой цели.
Он содержит полностью всю информацию, после изучения которой, вы легко сможете работать с проектами на основе ООП и более глубоко понимать принцип работы объектов.
В Python абсолютно всё является объектами, поэтому понимание этой концепции дает множество преимуществ.
Темы которые мы изучим:
- Объекты и классы
- Атрибуты (setattr, getattr, delattr, dict)
- Инициализация объектов и аргумент self
- Свойства (getter, setter, deleter)
- Dunder методы (get, set)
- Статические методы (@staticmethod)
- Slots - оптимизируем потребление памяти
- Dunder метод (New)
- Методы класса (@classmethod)
- Инкапсуляция - публичные, приватные и защищенные атрибуты
- Моносостояние - принцип работы
- Полиморфизм на примере (@singledispatch)
- Dunder методы (str, repr, len, del)
- Dunder методы (bool, bytes, float, int)
- Dunder методы (pow, reversed, truediv)
- Dunder методы (next, iter, call)
- Контекстный менеджер в классе используя (enter, exit)
- Dunder методы (add, sub, eq, hash)
- Работа с атрибутами (hasattr, getattr)
- Dunder методы (getitem, setitem, delitem, mul)
- Наследование и перегрузка методов
- Разбираем (isinstance, issubclass, getsizeof)
- Переопределение методов родителя
- Дата-классы (@dataclass)
- Множественное наследование (mro, vars, callable, super)
- Абстрактные методы (ABCMeta, abstractmethod)
- Декораторы классов
- Динамическое редактирование класса
- Метаклассы
- Класс который измеряет время выполнения функции используя with
- Декоратор в классе, который измеряет время выполнения функции
- Рассматриваем property в связке с psutil и генераторами
Какие задания мы выполним?
- Рассмотрим связь классов и экземпляров в памяти компьютера
- Научимся переопределять поведение классов и базовых операторов
- Разберем полиморфизм, наследование, инкапсуляцию на простых примерах
- Рассмотрим принцип динамического редактирования классов
- Рассмотрим основные концепции метапрограммирования
- Научимся оптимизировать классы и использовать декораторы классов
- Рассмотрим продвинутые темы для работы с полиморфизмом и дата-классами
Краткое описание ООП:
Объектно-ориентированное программирование (ООП) — это парадигма программирования, где различные компоненты компьютерной программы моделируются на основе реальных объектов. Объект — это что-либо, у чего есть какие-либо характеристики и то, что может выполнить какую-либо функцию. Главным понятием ООП является понятие программного объекта. Вообще говоря, большинство сущностей на планете Земля – это некие объекты. И с частью из них мы взаимодействуем при помощи программирования. Банковский счёт, персонаж компьютерной игры или анимированный виджет сайта – всё это легко представить в виде объектов. Можно сказать, что объектно-ориентированное программирование позволяет смоделировать реальный объект в виде программного.
Для кого этот курс
- начинающие разработчики Python. - разработчики, которые хотят изучить ООП на профессиональном уровне
Начальные требования
минимальные знания Python