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

网站首页线框图怎么做/爱站网关键词查询网站的工具

网站首页线框图怎么做,爱站网关键词查询网站的工具,网站备案过期,有没有免费做片头的网站目录 一、类的分类1.1 新式类1.2 经典类二、菱形继承问题三、C3算法与mro()方法介绍一、类的分类 1.1 新式类 继承了object的类以及该类的子类,都是新式类Python3中所有的类都是新式类1.2 经典类 没有继承object的类以及该类的子类,都是经典类只有Python…

目录

  • 一、类的分类
    • 1.1 新式类
    • 1.2 经典类
  • 二、菱形继承问题
  • 三、C3算法与mro()方法介绍

一、类的分类

1.1 新式类

  • 继承了object的类以及该类的子类,都是新式类

  • Python3中所有的类都是新式类

1.2 经典类

  • 没有继承object的类以及该类的子类,都是经典类

  • 只有Python2中才有经典类

二、菱形继承问题

92-菱形继承问题-继承关机.jpg?x-oss-process=style/watermark

在Java和C#中子类只能继承一个父类,而Python中子类可以同时继承多个父类,如A(B,C,D)

如果继承关系为非菱形结构,则会按照先找B这一条分支,然后再找C这一条分支,最后找D这一条分支的顺序直到找到我们想要的属性

如果继承关系为菱形结构,即子类的父类最后继承了同一个类,那么属性的查找方式有两种:

  • 经典类下:深度优先
  • 广度优先:广度优先

  • 经典类:一条路走到黑,深度优先

92-菱形继承问题-经典类.png?x-oss-process=style/watermark

  • 新式类:不找多各类最后继承的同一个类,直接去找下一个父类,广度优先

92-菱形继承问题-新式类.png?x-oss-process=style/watermark

class G(object):# def test(self):#     print('from G')passprint(G.__bases__)class E(G):# def test(self):#     print('from E')passclass B(E):# def test(self):#     print('from B')passclass F(G):# def test(self):#     print('from F')passclass C(F):# def test(self):#     print('from C')passclass D(G):# def test(self):#     print('from D')passclass A(B, C, D):def test(self):print('from A')obj = A()
(<class 'object'>,)
obj.test()  # A->B->E-C-F-D->G-object
from A

三、C3算法与mro()方法介绍

92-菱形继承问题-飞船原理.jpg?x-oss-process=style/watermark

python到底是如何实现继承的,对于你定义的每一个类,python会计算出一个方法解析顺序(MRO)列表,这个MRO列表就是一个简单的所有基类的线性顺序列表,如:

print(A.mro())  # A.__mro__
[<class '__main__.A'>, <class '__main__.B'>, <class '__main__.E'>, <class '__main__.C'>, <class '__main__.F'>, <class '__main__.D'>, <class '__main__.G'>, <class 'object'>]
for i in A.mro():print(i)
<class '__main__.A'>
<class '__main__.B'>
<class '__main__.E'>
<class '__main__.C'>
<class '__main__.F'>
<class '__main__.D'>
<class '__main__.G'>
<class 'object'>

为了实现继承,python会在MRO列表上从左到右开始查找基类,直到找到第一个匹配这个属性的类为止。

而这个MRO列表的构造是通过一个C3线性化算法来实现的。我们不去深究这个算法的数学原理,它实际上就是合并所有父类的MRO列表并遵循如下三条准则:

  1. 子类会先于父类被检查
  2. 多个父类会根据它们在列表中的顺序被检查
  3. 如果对下一个类存在两个合法的选择,选择第一个父类

转载于:https://www.cnblogs.com/nickchen121/p/10272737.html

http://www.jmfq.cn/news/4865491.html

相关文章:

  • 顺德做网站的公司哪家好/软件开发培训机构去哪个学校
  • 做鸭子的网站/网页设计可以自学吗
  • 如何识别网站建设/东莞网站建设做网站
  • 济南网站建设公司熊掌号/收录情况
  • 贵州安顺网站建设/品牌推广软文案例
  • 如何做网站测试/百度大数据查询怎么用
  • 怎么建立免费个人网站/重庆森林电影
  • 赞美对方公司网站做的好的日语/网上推广怎么收费
  • 专业的网站建设服务交易平台/怎么做网络销售
  • 台州哪里做网站/培训机构专业
  • 天津网站建设报价/搜索引擎优化学习
  • adobe做网站的软件/360安全浏览器
  • 中国最大的网站/临沂网站建设方案服务
  • 网站开发的检索速度在啥范围之内/线下推广有哪些渠道
  • 厦门网站建设网页设计/弹窗广告最多的网站
  • 自己做社交网站/输入关键词自动生成标题
  • 大学网站建设多少钱/网络营销案例分析
  • phpstudy做正式网站/重庆企业免费建站
  • 如何做教育网站/新闻发布平台有哪些
  • 如何提升顾客的体验和服务/小时seo
  • 施工企业环境管理体系/优化网站推广教程整站
  • 芯互联大厦做网站的/百度图片识别
  • 阜阳网站建设公司/图片优化
  • 网站自己怎么制作/怎么推广自己的微信号
  • 公司网站建设ppt/百度的代理商有哪些
  • 网站建设策划方案/百度关键词搜索排行
  • 网络规划设计师教程(第2版)/搜索引擎排名优化价格
  • 海北wap网站建设/最近一周热点新闻
  • 百度怎么收录自己的网站/nba体育新闻
  • wordpress.分页工具/seo北京