10.4. Вопросы

  1. Проблемы императивного (процедурного) подхода в программировании.
  2. Понятие объекта и черного ящика (примеры). Парадигма объектно-ориентированного программирования. Цель объектно-ориентированного подхода. Как выглядит разработка приложения в объектно-ориентированном стиле?
  3. Понятия класс, объект, поле, метод. Область видимости, виртуальность метода.
  4. Основные принципы ООП. Содержание и примеры.
  5. Поддержка ООП в Python. Определение простого класса (инициализация, строковое представление, специальные методы).
  6. Определение операторов в классах, проверка типов. Случаи, в которых добавление такой функциональности является целесообразным.
  7. Атрибуты объекта и атрибуты класса: ключевые различия и варианты использования.
  8. Инкапсуляция в Python: особенности, общедоступные (Public), не общедоступные (Non-Public) и закрытые (Private) атрибуты. Принцип универсального доступа, геттеры/сеттеры, свойства.
  9. Наследование в Python: особенности, два вида наследования (ключевые моменты, разница, примеры использования). Проверка принадлежности к классу/типу.
  10. Полиморфизм в Python: особенности, примеры использования.
  11. Множественное наследование: возможности и недостатки. Использование класса Python как структуры из Си.