El MRO (Method Resolution Order) o “Orden de Resolución de Métodos” es un concepto importante en Python relacionado con la herencia de clases y la forma en que se determina el orden en que los métodos de una clase y sus clases base (superclases) son buscados y llamados.
class A:
def saludar(self):
print("Hola desde clase A")
class B(A):
def saludar(self):
print("Hola desde clase B")
class C(A):
def saludar(self):
print("Hola desde clase C")
class D(B, C):
pass
# Obtener el MRO de la clase D
print(D.mro()) # Resultado: [<class '__main__.D'>, <class '__main__.B'>, <class '__main__.C'>, <class '__main__.A'>, <class 'object'>]
# Crear un objeto de la clase D y llamar al método saludar()
objeto_d = D()
objeto_d.saludar() # Resultado: "Hola desde clase B"