10.4. Вопросы¶
Проблемы императивного (процедурного) подхода в программировании.
Понятие объекта и черного ящика (примеры). Парадигма объектно-ориентированного программирования. Цель объектно-ориентированного подхода. Как выглядит разработка приложения в объектно-ориентированном стиле?
Понятия класс, объект, поле, метод. Область видимости, виртуальность метода.
Основные принципы ООП. Содержание и примеры.
Поддержка ООП в Python. Определение простого класса (инициализация, строковое представление, специальные методы).
Определение операторов в классах, проверка типов. Случаи, в которых добавление такой функциональности является целесообразным.
Атрибуты объекта и атрибуты класса: ключевые различия и варианты использования.
Инкапсуляция в Python: особенности, общедоступные (Public), не общедоступные (Non-Public) и закрытые (Private) атрибуты. Принцип универсального доступа, геттеры/сеттеры, свойства.
Наследование в Python: особенности, два вида наследования (ключевые моменты, разница, примеры использования). Проверка принадлежности к классу/типу.
Полиморфизм в Python: особенности, примеры использования.
Множественное наследование: возможности и недостатки. Использование класса Python как структуры из Си.