Классы и ООП
ООП (предупреждение: не читайте Википедию, там C++ style only ):
Инкапсуляция: иерархическое пространство объектов (как правило реализовано деревом пространства имён)
- категоризация объектов
связь объекта и его namespace
- механизм реализации наследования и полиморфизма
Python3 (и не только ): объект.поле
на самом деле это просто словари
Наследование: повторное использование свойств объекта при создании нового (есть несколько путей: прототипирование, классы/подклассы, /?\ что ещё?)
описание только разницы между исходным и новым объектом
знание о предках и их свойствах (интроспекция)
- ⇒ объектное планирование сложных и сверхсложных систем
- Python3 (и не только): классы и подклассы
Полиморфизм: повторное использование возможностей объекта при использовании принципиально другого объекта
реализация только разницы возможностей между исходным и новым объектом (во многих языках совпадает с механизмом наследования)
- ⇒ объектное планирование сложных и сверхсложных систем
- правила работы с отличающимися свойствами (например, то делать с дополнительными полями? много ещё чего)
- Python3 (ещё примеры? Ruby?): параметрический полиморфизм, он же в данном случае Duck Typing: любой метод/функцию можно применять к любым объектам, лишь бы
- этот метод был,
- количество параметров было допустимым
эти три правила были применимы к коду метода/функции
Полиморфизм
приватные поля
перегрузка операций
наследование, MRU