Обзор главы
В главе рассказывается об объектно-ориентированном программировании (ООП).
Раньше у нас был процедурный подход. Записывали алгоритм в виде набора процедур (функций). Сейчас будем записывать в виде набора объектов и писать как эти объекты могут взаимодействовать.
Класс - это новый тип данных, который вы можете написать.
Уже известные вам классы: int, str, list, dict и так далее.
Основные принципы ООП:
- Инкапсуляция - к атрибутам объекта доступаются не напрямую, а через методы. Для чего? Ограничиваем возможность сломать класс.
- Наследование - добавляем к существующему классу новые атрибуты и методы. Можно воспользоваться полями и методами родительских классов. Цепочки наследования. Множественное наследование.
- Полиморфизм - в классах-наследниках можно изменить методы родительского класса. По факту будет вызываться самый последний переопределенный метод в цепочке наследования.
Источники (рекомендую)
Быстро и на пальцах:
Медленно для начинающих:
- Think Python by Downey
Подробно:
- Лутц. Изучаем Python
- Саммерфилд. Программирование на Python 3
Читать дальше патерны программирования:
- Pyhon in Practice by Sammerfield
- Гради Буч Объектно-ориентированный анализ и проектирование с примерами приложений