Python 中的 MRO —— 方法搜索顺序

问题的提出:

● 如果 不同的父类 中存在 同名的方法,子类对象 在调用方法时,会调用 哪一个父类中的方法呢?

在这里插入图片描述
提示:开发时,应该尽量避免这种容易产生混淆的情况! —— 如果 父类之间 存在 同名的属性或者方法,应该 尽量避免 使用多继承

Python 中的 MRO —— 方法搜索顺序(知道)

● 在搜索方法时,是按照 mro 的输出结果 从左至右 的顺序查找的
● 如果在当前类中 找到方法,就直接执行,不再搜索
● 如果 没有找到,就查找下一个类 中是否有对应的方法,如果找到,就直接执行,不再搜索
● 如果找到最后一个类,还没有找到方法,程序报错

● Python 中针对 类 提供了一个 内置属性 mro 可以查看 方法 搜索顺序
● MRO 是 method resolution order,主要用于 在多继承时判断 方法、属性 的调用 路径

在这里插入图片描述

输出结果
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_39463175/article/details/120942651