Различия между версиями 6 и 7
Версия 6 от 2018-11-24 21:01:21
Размер: 2240
Редактор: FrBrGeorge
Комментарий:
Версия 7 от 2018-11-24 21:18:54
Размер: 2515
Редактор: FrBrGeorge
Комментарий:
Удаления помечены так. Добавления помечены так.
Строка 30: Строка 30:
  * `super()`  * Вызов метода родительского класса
  * `super()` — прокси-объект, аккумулирующий методы всех родительских классов (см. множественное наследование)
Строка 36: Строка 37:
  * любой обход дерева доберётся до борее глубокого метода   * любой обход дерева доберётся до более глубокого метода
Строка 47: Строка 48:
 * `super()` '''TODO'''

Наследование и исключения

Долги за прошлый раз:

  • hasattr() и getattr()

  • __iter__()

  • __del__()

Наследование

Объектное планирование и ООП

ООП:

Характеристика

Python3

Инкапсуляция (не сокрытие)

Иерархия пространств имён

Наследование

Наследование + C3 MRO

Полиморфизм

«Из коробки», т. к. duck typing

Проксирование?

Хранить родительский объект в виде поля, а все методы нового класса делать обёрткой вокруг методов родительского объекта.

TODO пример

Простое наследование

  • Видимость и перегрузка методов
  • Преобразование типов и создание новых объектов текущего типа:
    • type(self)(…)

  • Вызов метода родительского класса
    • super() — прокси-объект, аккумулирующий методы всех родительских классов (см. множественное наследование)

  • Защита полей от случайной перегрузки («__»)

Множественное наследование

TODO https://rhettinger.wordpress.com/2011/05/26/super-considered-super/ ?

Д/З

TODO

LecturesCMC/PythonIntro2018/10_Inheritance (последним исправлял пользователь FrBrGeorge 2018-11-28 01:21:53)