python中的多继承,python是多继承还是单继承

  python中的多继承,python是多继承还是单继承

  本教程运行环境:windows7系统,Python 3.9.1,DELL G3电脑。

  1、查找顺序

  (1)局部优先,自定义或重写方法优先。如果本地没有,按照继承列表从左到右搜索;

  (2)单调性,所有子类,并且也满足搜索顺序。也就是说,A继承B继承C,A会先找到B,再找到C,但是A在搜索之前,如果B有多个继承,就要先按照搜索顺序进行搜索。

  2、实例

  如果你定义了一个多重继承类,如果你不能满足MRO,你将抛出一个MRO的异常。

  classA:

  及格

  类别(A):

  及格

  类别F(A,E):

  及格

  f()

  回溯(mostrecentcalllast):

  文件“/usr/local/python 3/lib/python 3.6/site-packages/IPython/core/interactive shell . py”,第2862行,inrun_code

  exec(代码_对象,自我.用户_全局_ns,自我.用户_ns)

  文件 ipython-input-9-491a467e42f0 ,第7行,在模块中

  类别F(A,E):

  type error : cannotcreateaconsistentmethod resolution

  Order(MRO)forbasesA,E#引发MRO异常。原因是下面可以看到MRO,因为这个属性存在于类中。

  A.__mro__

  Out[10]:(__main__。一、对象)

  E.__mro__

  Out[11]:(__main__。e,__main__。一、对象)

  #定义另一个g。

  类别:

  及格

  G.__mro__

  Out [17] : (_ _ main _ _。g,_ _ main _ _。e,_ _ main _ _。一个,对象)。以上是python的多继承搜索序列的介绍。希望能对你有所帮助。更多Python学习指南:python基础教程

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: