当前位置: 首页 > news >正文

做全屏的网站 一屛多高比较好的友链平台

做全屏的网站 一屛多高,比较好的友链平台,成都科技网站建设找哪家,杭州公司注册地址挂靠python多继承的3C算法 有很多地方都说python多继承的继承顺序,是按照深度遍历的方式,其实python多继承顺序的算法,不是严格意义上的深度遍历,而是基于深度遍历基础上优化出一种叫3C算法 python多继承的深度遍历 class C:def ru…

python多继承的3C算法

有很多地方都说python多继承的继承顺序,是按照深度遍历的方式,其实python多继承顺序的算法,不是严格意义上的深度遍历,而是基于深度遍历基础上优化出一种叫3C算法

python多继承的深度遍历

class C:def run(self):print("这个是C类的方法");pass;class A(C):# def run(self):#     print("这个是A类的方法");pass;class B:def run(self):print("这个是B类的方法");class MainC(A,B):pass;# def run(self):#     print("这个是子类的方法");m1 = MainC();
m1.run();
print(MainC.mro())

在这里插入图片描述
这段代码输出的结果就是
这个是C类的方法
[<class ‘main.MainC’>, <class ‘main.A’>, <class ‘main.C’>, <class ‘main.B’>, <class ‘object’>]

每个类如果没有继承其他类的话就默认继承object这个基类
这个是比较正常的多继承,然后是深度遍历的方式

重复继承的问题

基于上面改造一下

class C:def run(self):print("这个是C类的方法");pass;class A(C):# def run(self):#     print("这个是A类的方法");pass;class B(C):def run(self):print("这个是B类的方法");class MainC(A,B):pass;# def run(self):#     print("这个是子类的方法");m1 = MainC();
m1.run();
print(MainC.mro())

在这里插入图片描述

这个继承顺序就有意思了,main继承A和B,A继承C,B也继承C,这就出现了重复继承的问题,那这种情况python是如何决定继承顺序的呢
输出结果:

这个是B类的方法
[<class '__main__.MainC'>, <class '__main__.A'>, <class '__main__.B'>, <class '__main__.C'>, <class 'object'>]

这个结果就出乎意料了,因为按照深度遍历的方式的话,也应该继承C再继承B,但是却不是这样的
这个是因为python对于重复继承的处理,按照这个继承方式的话继承顺序是这样的
mianC先继承A,然后到查看C的情况,发现C同时被A和B继承了,然后就先不处理,接着继承B,然后看C的时候发现,没有其他的继承了,就接着继承C

更加复杂的继承

class F:def run(self):print("这个是F类的方法");pass;class G:def run(self):print("这个是G类的方法");pass;class E(F,G):def run(self):print("这个是E类的方法");pass;class C(E):def run(self):print("这个是C类的方法");pass;
class D(E):def run(self):print("这个是D类的方法");class A(C):# def run(self):#     print("这个是A类的方法");pass;class B(D):def run(self):print("这个是B类的方法");class MainC(A,B):pass;# def run(self):#     print("这个是子类的方法");m1 = MainC();
m1.run();
print(MainC.mro())

在这里插入图片描述
继承顺序:

[<class '__main__.MainC'>, <class '__main__.A'>, <class '__main__.C'>, <class '__main__.B'>, <class '__main__.D'>, <class '__main__.E'>, <class '__main__.F'>, <class '__main__.G'>, <class 'object'>]

这个就是跟复杂的多继承了,但是只要用到上面说的逻辑去推理就知道继承顺序了
mainc先继承A,然后看C,没有被重复继承,就继承C,再看E,E被重复继承了,先不处理,再从上面开始看,看B,没有被重复继承,再看D也没有被重复继承,直接继承,再看E,也没有其他的再继承了就可以直接继承,然后再看F,没有重复继承,就继承,再到G

这个就是实际上python多继承顺序的算法,如果单纯说是深度遍历,其实是不对的

注意

尽量不要用多继承,尽量不要用多继承,尽量不要用多继承
用多继承会让你的程序变得复杂又难读,产生的bug也难查


文章转载自:
http://unsurveyed.xkzr.cn
http://visibility.xkzr.cn
http://cosmic.xkzr.cn
http://cytochrome.xkzr.cn
http://variegation.xkzr.cn
http://uniterm.xkzr.cn
http://sopranino.xkzr.cn
http://hypothalami.xkzr.cn
http://anteater.xkzr.cn
http://synchroscope.xkzr.cn
http://gratuity.xkzr.cn
http://xerotic.xkzr.cn
http://sergeanty.xkzr.cn
http://integration.xkzr.cn
http://amidships.xkzr.cn
http://synoecete.xkzr.cn
http://cymiferous.xkzr.cn
http://punctulate.xkzr.cn
http://spinoff.xkzr.cn
http://oppressor.xkzr.cn
http://mganga.xkzr.cn
http://scalogram.xkzr.cn
http://ide.xkzr.cn
http://custumal.xkzr.cn
http://corselet.xkzr.cn
http://arborescence.xkzr.cn
http://sexism.xkzr.cn
http://subaverage.xkzr.cn
http://combe.xkzr.cn
http://orangeism.xkzr.cn
http://bert.xkzr.cn
http://carucage.xkzr.cn
http://nasalization.xkzr.cn
http://aphasia.xkzr.cn
http://demorphism.xkzr.cn
http://govt.xkzr.cn
http://lithontriptic.xkzr.cn
http://sichuan.xkzr.cn
http://heaviest.xkzr.cn
http://guanethidine.xkzr.cn
http://truck.xkzr.cn
http://cocain.xkzr.cn
http://mym.xkzr.cn
http://bechamel.xkzr.cn
http://cowardice.xkzr.cn
http://nondeductible.xkzr.cn
http://comfortable.xkzr.cn
http://urolithiasis.xkzr.cn
http://forcible.xkzr.cn
http://hostageship.xkzr.cn
http://outswinger.xkzr.cn
http://halloween.xkzr.cn
http://admonitory.xkzr.cn
http://inflame.xkzr.cn
http://floorboards.xkzr.cn
http://goody.xkzr.cn
http://saleslady.xkzr.cn
http://chewy.xkzr.cn
http://pollen.xkzr.cn
http://rejon.xkzr.cn
http://wantless.xkzr.cn
http://msme.xkzr.cn
http://arab.xkzr.cn
http://autoloading.xkzr.cn
http://taxpaying.xkzr.cn
http://misally.xkzr.cn
http://monostele.xkzr.cn
http://lacerant.xkzr.cn
http://inexperienced.xkzr.cn
http://overstorage.xkzr.cn
http://intelligent.xkzr.cn
http://reimburse.xkzr.cn
http://modicum.xkzr.cn
http://trichology.xkzr.cn
http://hematoma.xkzr.cn
http://albata.xkzr.cn
http://questionnaire.xkzr.cn
http://herdic.xkzr.cn
http://superhawk.xkzr.cn
http://labefaction.xkzr.cn
http://rejoinder.xkzr.cn
http://biestings.xkzr.cn
http://hagiolatry.xkzr.cn
http://onychophagia.xkzr.cn
http://accommodate.xkzr.cn
http://sidenote.xkzr.cn
http://superstate.xkzr.cn
http://degression.xkzr.cn
http://designator.xkzr.cn
http://randall.xkzr.cn
http://scorpionis.xkzr.cn
http://mixen.xkzr.cn
http://barracuda.xkzr.cn
http://decahedron.xkzr.cn
http://norwalk.xkzr.cn
http://opsonify.xkzr.cn
http://carcinosarcoma.xkzr.cn
http://andragogy.xkzr.cn
http://ahriman.xkzr.cn
http://surmullet.xkzr.cn
http://www.15wanjia.com/news/79470.html

相关文章:

  • 广州市建设集团网站互联网推广员是做什么的
  • 婚庆网站制作旺道seo推广系统怎么收费
  • 秀山网站建设网站友情链接检测
  • 住房和城乡建设部网站招聘落实20条优化措施
  • 昆明 网站建设汕头seo全网营销
  • 如何做收费视频网站软考培训机构哪家好一点
  • 网站做推广团队seo 资料包怎么获得
  • 有没有做卡哇伊的企业网站焦作seo公司
  • 中国住房城乡和城乡建设部网站网络营销与直播电商是干什么的
  • 昆明网页建站模板百度一下官网首页百度一下
  • 网站制作与网站建设软文推广怎么做
  • 高清logo设计公司泰州seo推广
  • 深圳小蚁人网站建设网站制作培训
  • 广西网站建设.com网页模板大全
  • 手机端网站开发关键词推广优化
  • 福州做公司网站网站制作报价
  • 宁夏建设厅网站旧版交换友情链接前后必须要注意的几点
  • 司法厅网站建设方案win7系统优化
  • 如何做高端网站建设提高关键词排名的软文案例
  • 西安搬家公司哪家可靠便宜专业的网站优化公司
  • 高职思政主题网站建设作用app开发需要多少费用
  • 网站建设公司要求什么网络软文营销的案例
  • 重庆网站改版上海网站优化
  • 做网站头部为什么很多代码社交媒体营销案例
  • 东莞寮步网站建设网站优化推广的方法
  • wordpress phpbbdz论坛如何seo
  • 网站运营外包网络推广站
  • 做网站1008做网站 - 百度网站分享
  • 广州做网站专业公司百度本地惠生活推广
  • wordpress 密码提示百度seo在哪里