Python 中的 MRO —— 方法搜索顺序
Posted amcomputer
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python 中的 MRO —— 方法搜索顺序相关的知识,希望对你有一定的参考价值。
问题的提出:
● 如果 不同的父类 中存在 同名的方法,子类对象 在调用方法时,会调用 哪一个父类中的方法呢?
提示:开发时,应该尽量避免这种容易产生混淆的情况! —— 如果 父类之间 存在 同名的属性或者方法,应该 尽量避免 使用多继承
Python 中的 MRO —— 方法搜索顺序(知道)
● 在搜索方法时,是按照 mro 的输出结果 从左至右 的顺序查找的
● 如果在当前类中 找到方法,就直接执行,不再搜索
● 如果 没有找到,就查找下一个类 中是否有对应的方法,如果找到,就直接执行,不再搜索
● 如果找到最后一个类,还没有找到方法,程序报错
● Python 中针对 类 提供了一个 内置属性 mro 可以查看 方法 搜索顺序
● MRO 是 method resolution order,主要用于 在多继承时判断 方法、属性 的调用 路径
输出结果
以上是关于Python 中的 MRO —— 方法搜索顺序的主要内容,如果未能解决你的问题,请参考以下文章