Программа обучения
Часть 1. Вступление
- Теория ООП
- Почему необходимо понимать ООП
- Объекты, классы и экземпляры
- Атрибуты (setattr, getattr, delattr, dict)
- Инициализация объектов и аргумент self
- Свойства (getter, setter, deleter)
- Dunder методы (get, set)
- Статические методы (@staticmethod)
- Slots - оптимизируем потребление памяти
- Dunder метод (New)
Часть 2. Глубокое устройство классов
- Моносостояние
- Полиморфизм на примере (@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)
Часть 3. Продвинутый ООП
- Наследование и перегрузка методов
- Разбираем (isinstance, issubclass, getsizeof)
- Переопределение методов родителя
- Дата-классы (@dataclass)
- Множественное наследование (mro, vars, callable, super)
- Абстрактные методы (ABCMeta, abstractmethod)
- Декораторы классов
- Динамическое редактирование класса
- Метаклассы
Часть 4. Финал
- Класс который измеряет время выполнения функции используя with
- Декоратор в классе, который измеряет время выполнения функции
- Property в связке с Psutil и генераторами