Middle+
58
Šta je MRO (Redosled rešavanja metoda)?
Компаније где су питане
Литрес
Одговор од АИ
sobes.tech АИ
MRO (Method Resolution Order) — это порядок, в котором Python ищет методы и атрибуты в иерархии классов при наследовании, особенно при множественном наследовании. В Python используется алгоритм C3-линеаризации, который гарантирует, что поиск происходит последовательно и предсказуемо, избегая неоднозначностей.
Пример:
class A:
def method(self):
print("A")
class B(A):
def method(self):
print("B")
class C(A):
def method(self):
print("C")
class D(B, C):
pass
obj = D()
obj.method() # Выведет "B"
print(D.mro()) # Покажет порядок поиска методов
Здесь метод вызывается из класса B, так как MRO для D — [D, B, C, A, object].