1、查找顺序

(1)本地优先,自己定义或重写的方法优先。本地没有的,按照继承列表,从左往右查找;

(2)单调性,所有子类,也要满足查找顺序。也就是说 A 继承 B C,A 会先找 B 再找 C。但是在 A 查找之前,B 如果有多个继承,那么它先得按查找顺序查找。

2、实例

如果定义一个多继承的类,如果不能满足 MRO 的话,会抛出 MRO 的异常。class A:

pass

class E(A):

pass

class F(A, E):

pass

>>> F()

Traceback (most recent call last):

File "/usr/local/python3/lib/python3.6/site-packages/IPython/core/interactiveshell.py", line 2862, in run_code

exec(code_obj, self.user_global_ns, self.user_ns)

File "", line 7, in

class F(A, E):

TypeError: Cannot create a consistent method resolution

order (MRO) for bases A, E # 抛出 MRO 异常,原因下面讲

MRO 是可以看到的,因为类中存在这个属性。>>> A.__mro__

Out[10]: (__main__.A, object)

>>> E.__mro__

Out[11]: (__main__.E, __main__.A, object)

# 再定义一个 G

class G(E, A):

pass

>>> G.__mro__

Out[17]: (__main__.G, __main__.E, __main__.A, object)

以上就是python多继承的查找顺序的介绍,希望能对大家有所帮助。更多Python学习指路:

python多继承顺序及分配,python多继承的查找顺序是什么?相关推荐

  1. python类继承的查找顺序问题

    python继承的顺序,也就是钻石继承问题,查找顺序是从子类到父类,从左到右,最后查找object,(简单地说,可以说是深度优先的查找方式) 以下面为例: class GrandFather(obje ...

  2. Python高级编程:类和实例属性的查找顺序—mro查找

    一. mro查找定义 如果多个类继承父类,然后又被多个类继承这种复杂的问题,可以使用mro方法 class D:pass class C(D):pass class B(D):pass class A ...

  3. 面向对象之继承、查找顺序

    对象独有的功能 在面向对象编程中,如果一个方法无法被其他类调用,只能被一个类里面的对象调用,这样的方法称为对象独有的方法. 在python中,在一个类里面定义的方法就是独有的方法. class Per ...

  4. python多继承顺序_Python多继承以及MRO顺序的使用

    多继承以及MRO顺序 1. 单独调用父类的方法 # coding=utf-8 print("******多继承使用类名.__init__ 发生的状态******") class P ...

  5. python基础教程:多态、多继承、函数重写、迭代器详细教程

    用于类的函数 issubclass(cls,class_or_tuple) 判断一个类是否继承自其他的类,如果此类cls是class或tuole中的一个派生(子类)则返回True,否则返回False ...

  6. Python基础day09【面向对象(封装、继承、多态)、重写、私有权限】

    视频.源码.课件.软件.笔记:超全面Python基础入门教程[十天课程]博客笔记汇总表[黑马程序员] Python基础day09[面向对象(封装.继承.多态).重写.私有权限] Python基础day ...

  7. python的继承用法_python之继承中组合用法与菱形继承关系查找法

    1.什么是组合 组合就是一个类的对象具备某一属性,该属性的值是指向另外外一个类的对象 2.为什么用组合 组合也是用来解决类与类之间代码冗余问题 3.用法 class Course:           ...

  8. Python中菱形继承的MRO顺序及property属性

    Python中菱形继承的MRO顺序及property属性 文章目录 Python中菱形继承的MRO顺序及property属性 一.Python中菱形继承的MRO顺序 1. 单独调用父类的方法 2. 多 ...

  9. python继承属性_python继承,属性查找顺序

    以为python支持多继承,因此在复杂的继承关系下很容易弄错属性的查找顺序,今天特意学习了下 python3用的是c3线性化算法,听名字很高大上,公式我也看了,看不懂,但是这不影响理解查找的顺序 先看 ...

最新文章

  1. OpenCV+python:人脸检测
  2. 06_一对一和一对多
  3. 请教各位高手!手机要如何访问电脑的tomcat呢!
  4. Linux的Nginx五:进程|过程
  5. python的sorted函数对字典按key排序和按value排序
  6. 最少步数----深搜
  7. python数据可视化源码_Python数据分析:基于Plotly的动态可视化绘图 随书源码[101MB]...
  8. 三菱d700变频器接线图_图解PLC与变频器通讯接线
  9. 基于centos6.5 hbase 集群搭建
  10. linuxc网络通信
  11. (原创)c#学习笔记08--面向对象编程简介02--OOP技术02--继承
  12. SpringCloud工作笔记041---com.fasterxml.jackson.databind.ObjectMapper的使用
  13. server多笔记录拼接字符串 sql_前台传入多个参数(数组格式),拼接成字符串中间用逗号隔开,传入到sql中用in查询....
  14. 使用GDAL库中的RPC校正问题
  15. 查看电脑硬件信息、版本、出厂、内存等各种信息
  16. go语言中关于文件的操作+工作目录的拼接
  17. oracle not like优化,oracle的like优化,对比了一下,效果确实比like好些。
  18. 一文完成vosviewer共现网络,使用知网及web of science导出文献
  19. MacOS下安装R语言和RStudio教程(超完整)
  20. linux(安装在虚拟机)读取U盘

热门文章

  1. 【笔试/面试】—— 有向无环图(DAG)的最短路径问题(动态规划)
  2. Python 2.x vs Python 3.x(四)—— TypeError: unhashable type
  3. java520.1314表白_520最新表白公式,拿去不谢!
  4. 学计算机的能看出批图吗,P图P的好,女朋友满街跑,P图先学计算机,清华和这些学校少不了...
  5. 物权法全文内容有哪些呢-广告外链_SEO优化的站外优化工作有哪些?
  6. python自学网-python自学网
  7. python简单爬虫代码-使用Python3.5写简单网络爬虫
  8. python能做什么-Python到底能做什么?它的优点在哪
  9. 简明python教程-Python简明入门教程
  10. JS中的语音识别——Speech Recognition API