Курс по «Объектно-ориентированному программированию в Python» и это его карта:
- Введение (проблема процедурного подхода)
- Объекты и классы
- Атрибуты класса и функции
- Классы как callable-объекты, экземпляры классов
- Функции классов и методы экземпляров, self
- Инициализация экземляров, __init__ метод
- Статические методы и декоратор @staticmethod
- Инкапсуляция, приватные атрибуты и публичный интерфейс
- Пример 1
- Name mangling
- Область видимости классов и Методы класса @classmethod
- Свойства @property, геттеры и сеттеры (getter, setter)
- Свойства только для чтения и вычисляемые свойства
- Наследование, перегрузка методов и расширение функциональности
- Множественное наследование, mro, миксины
- Полиморфизм, перегрузка операторов
- Хэшируемые объекты и равенство
- super() и делегирование родителям
- Дескрипторы. Non-data дескрипторы
- Дескрипторы данных
- Слабые ссылки weakref и проблема хранения данных в экземпляре дескриптора
- Метод __set_name__ и хранение данных в экземпляре класса-владельца









