Различия между версиями 1 и 2
Версия 1 от 2017-11-17 14:23:57
Размер: 1542
Редактор: FrBrGeorge
Комментарий:
Версия 2 от 2017-11-17 14:42:33
Размер: 2752
Редактор: FrBrGeorge
Комментарий:
Удаления помечены так. Добавления помечены так.
Строка 4: Строка 4:
 1. Инкапсуляция: иерархическое пространство объектов (как правило реализовано деревом пространства ''имён'')  1. '''Инкапсуляция''': иерархическое пространство объектов (как правило реализовано деревом пространства ''имён'')
Строка 10: Строка 10:
 1. Наследование: повторное использование свойств объекта при создании нового (есть несколько путей: прототипирование, классы/подклассы, /?\ что ещё?)  1. '''Наследование''': повторное использование свойств объекта при создании нового (есть несколько путей: прототипирование, классы/подклассы, /?\ что ещё?)
Строка 12: Строка 12:
  * ⇒ объектное планирование сложных и свехрсложных систем   * знание о предках и их свойствах ('''интроспекция''')
 
* ⇒ объектное планирование сложных и сверхсложных систем
Строка 14: Строка 15:
 1. Полиморфизм: повторное использование возможностей объекта при ''использовании'' принципиально другого объекта (
  *
 1. '''Полиморфизм''': повторное использование возможностей объекта при ''использовании'' принципиально другого объекта
  * реализация только ''разницы'' возможностей между исходным и новым объектом (во многих языках совпадает с механизмом наследования)
   * ⇒ объектное планирование сложных и сверхсложных систем
  * правила работы с отличающимися свойствами (например, то делать с дополнительными полями? много ещё чего)
  * Python3 (ещё примеры? Ruby?): параметрический полиморфизм, он же в данном случае Duck Typing: любой метод/функцию можно применять к любым объектам, лишь бы
   1. этот метод был,
   1. количество параметров было допустимым
   1. эти три правила были применимы к ''коду'' метода/функции

== Полиморфизм ==
Строка 19: Строка 28:
приватные пола приватные поля
Строка 22: Строка 31:

наследование, MRU

Классы и ООП

ООП (предупреждение: не читайте Википедию, там C++ style only :( ):

  1. Инкапсуляция: иерархическое пространство объектов (как правило реализовано деревом пространства имён)

    • категоризация объектов
    • связь объекта и его namespace

    • механизм реализации наследования и полиморфизма
    • Python3 (и не только :) ): объект.поле

      • на самом деле это просто словари :)

  2. Наследование: повторное использование свойств объекта при создании нового (есть несколько путей: прототипирование, классы/подклассы, /?\ что ещё?)

    • описание только разницы между исходным и новым объектом

    • знание о предках и их свойствах (интроспекция)

      • ⇒ объектное планирование сложных и сверхсложных систем
    • Python3 (и не только): классы и подклассы
  3. Полиморфизм: повторное использование возможностей объекта при использовании принципиально другого объекта

    • реализация только разницы возможностей между исходным и новым объектом (во многих языках совпадает с механизмом наследования)

      • ⇒ объектное планирование сложных и сверхсложных систем
    • правила работы с отличающимися свойствами (например, то делать с дополнительными полями? много ещё чего)
    • Python3 (ещё примеры? Ruby?): параметрический полиморфизм, он же в данном случае Duck Typing: любой метод/функцию можно применять к любым объектам, лишь бы
      1. этот метод был,
      2. количество параметров было допустимым
      3. эти три правила были применимы к коду метода/функции

Полиморфизм


приватные поля

перегрузка операций

наследование, MRU

LecturesCMC/PythonIntro2017/09_Overload (последним исправлял пользователь FrBrGeorge 2017-11-25 21:08:04)