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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。