Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Industrial programming >> Python

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

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

В этом руководстве вы узнаете о множественном наследовании в Python и о том, как использовать его в своей программе. Вы также узнаете о многоуровневом наследовании и порядке разрешения методов.

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

Класс может быть получен более чем из одного базового класса в Python, аналогично C++. Это называется множественным наследованием.

При множественном наследовании свойства всех базовых классов наследуются производным классом. Синтаксис множественного наследования аналогичен одиночному наследованию.

Пример

00

Здесь MultiDerived класс является производным от Base1 и Base2 классы.

<рисунок>

Многопроизводный класс наследуется как от Base1 и Base2 классы.

<час>

Многоуровневое наследование Python

Мы также можем наследовать от производного класса. Это называется многоуровневым наследованием. В Python это может быть любой глубины.

При многоуровневом наследовании функции базового класса и производного класса наследуются новым производным классом.

Ниже приведен пример с соответствующей визуализацией.

10 

Здесь Derived1 класс является производным от Base класс и Derived2 класс является производным от Derived1 класс.

<рисунок> <час>

Порядок разрешения методов в Python

Каждый класс в Python является производным от 02 учебный класс. Это самый базовый тип в Python.

Таким образом, технически все остальные классы, как встроенные, так и определяемые пользователем, являются производными классами, а все объекты являются экземплярами класса 19. класс.

27

В сценарии множественного наследования любой указанный атрибут сначала ищется в текущем классе. Если не найдено, поиск продолжается в родительских классах в глубину, влево-вправо без двойного поиска в одном и том же классе.

Итак, в приведенном выше примере 29 class порядок поиска [37 , 44 , 59 , 63 ]. Этот порядок также называется линеаризацией 76. класс, а набор правил, используемых для поиска этого порядка, называется Порядок разрешения методов (MRO). .

MRO должен предотвращать локальный порядок приоритета, а также обеспечивать монотонность. Это гарантирует, что класс всегда появляется перед его родителями. В случае нескольких родителей порядок такой же, как у кортежей базовых классов.

MRO класса можно рассматривать как 89 атрибут или 95 метод. Первый возвращает кортеж, а второй возвращает список.

31

Вот немного более сложный пример множественного наследования и его визуализация вместе с MRO.

<рисунок>
40

Вывод

58

Чтобы узнать фактический алгоритм расчета MRO, посетите Обсуждение MRO.


Python

  1. Типы данных Python
  2. Операторы Python
  3. Оператор передачи Python
  4. Словарь Питона
  5. Пользовательские исключения Python
  6. Объектно-ориентированное программирование Python
  7. Наследование Питона
  8. type() и isinstance() в Python с примерами
  9. С# — Наследование
  10. Python — объектно-ориентированный