1. Главная
  2. Библиотека
  3. Информационные технологии
  4. Bonpoc: Расположите фрагменты кода, определяющие иерарх...
Решение задачи на тему

Bonpoc: Расположите фрагменты кода, определяющие иерархию классов, в том порядке, в котором Python будет искать метод в классе X (порядок разрешения методов (MRO) для класса X ): Tun ОТВЕТА:  Сортировка 1 classX(D) : 2 class D(B, C) : 3 class B(A) : 4

  • Информационные технологии
  • #Программирование (языки C++, Java, Python и др.)
  • #Объектно-ориентированное программирование
Bonpoc: Расположите фрагменты кода, определяющие иерархию классов, в том порядке, в котором Python будет искать метод в классе X (порядок разрешения методов (MRO) для класса X ): Tun ОТВЕТА:  Сортировка 1 classX(D) : 2 class D(B, C) : 3 class B(A) : 4

Условие:

Bonpoc: Расположите фрагменты кода, определяющие иерархию классов, в том порядке, в котором Python будет искать метод в классе X (порядок разрешения методов (MRO) для класса X ): Tun ОТВЕТА:  Сортировка 1 classX(D) :

2 class D(B, C) :

3 class B(A) :

4 class C(A):

5 class A:

Решение:

Разберём по шагам, как Python вычисляет порядок поиска методов (MRO) для класса X, заданного следующей иерархией:

  1. Определены фрагменты кода:   • (1) class X(D):   • (2) class D(B, C):   • (3) class B(A):   • (4) class C(A):   • (5) class A:

  2. Иерархия наследования такова:   X наследует от D;   D – от B и C;   B и C – от A.

  3. Сначала вычисляем MRO для класса D (используется алгоритм C3-линеаризации):

a) Для класса B: MRO(B) = [B, A, object].   b) Для класса C: MRO(C) = [C, A, object].

c) Для класса D, имеющего базовые классы...

Выбери предмет