Первые шаги в ООП
1. Как правильно выполнять задания курса
2. Концепция ООП простыми словами
3. Классы и объекты. Атрибуты классов и объектов
4. Методы классов. Параметр self
5. Инициализатор __init__ и финализатор __del__
6. Магический метод __new__. Пример паттерна Singleton
7. Методы класса (classmethod) и статические методы (staticmethod)
8. Испытание свойствами и методами
Режимы доступа, свойства и дескрипторы
1. Режимы доступа public, private, protected. Сеттеры и геттеры
2. Свойства property. Декоратор @property
3. Дескрипторы (data descriptor и non-data descriptor)
Магические методы классов
1. Методы __setattr__, __getattribute__, __getattr__ и __delattr__
2. Метод __call__. Функторы и классы-декораторы
3. Методы __str__, __repr__, __len__, __abs__
4. Методы __add__, __sub__, __mul__, __truediv__
5. Сравнения __eq__, __ne__, __lt__, __gt__ и другие
6. Методы __eq__ и __hash__
7. Метод __bool__
8. Методы __getitem__, __setitem__ и __delitem__
9. Методы __iter__ и __next__
10. Испытание магией
Наследование и полиморфизм
1. Наследование в объектно-ориентированном программировании
2. Функция issubclass(). Наследование от встроенных типов
3. Наследование. Функция super() и делегирование
4. Наследование. Атрибуты private и protected
5. Полиморфизм и абстрактные методы
6. Множественное наследование
7. Коллекция __slots__
8. Испытание "Бремя наследия"
Исключения и менеджеры контекста
1. Введение в обработку исключений. Блоки try / except
2. Обработка исключений. Блоки finally и else
3. Распространение исключений (propagation exceptions)
4. Инструкция raise и пользовательские исключения
5. Менеджеры контекстов. Оператор with
6. Посвящение в объектно-ориентированное программирование