Python新式类MRO算法-C3算法

  1. MRO
    Method Resolution Order,即方法解析顺序,是用来处理Python中的二义性问题的算法。
  2. 二义性
    Python因为支持多继承,而多继承的编程语言往往存在二义性问题。
  3. 二义性问题
    魔鬼三角继承:有两个基类A和B,A和B中都定义了方法f(),C类继承了A类和B类,那么调用C类的f()时出现不确定情况。
    恐怖菱形继承:有一个基类A,定义了方法f(),B类和C类继承了A类(的f()方法),D类继承了B和C类,那么出现一个问题,D不知道应该继承B的f()方法还是C的f()方法。
  4. 深度遍历优先算法
    指代一种搜索算法,其算法核心是尽可能先对纵深方向进行搜索,当一条分支搜索到叶子结点后,终止,从左往右找到下一条分支,继续开始纵深方向的搜索,直至搜索到最后一条分支的叶子节点,停止搜索。
  5. 广度遍历优先算法
    指代一种搜索算法,其算法核心是针对树形结构的每一层,从根结点出发,按照一层一层的顺序,每层从左至右的顺序搜索,当搜索到某一层最后一个非叶子结点,结束该层搜索,进入下一层,继续搜索,直至搜索到最后一个叶子节点,停止搜索。
  6. 经典类
    一种没有继承的类,所有的类型都是type类型,如果经典类作为父类,子类调用父类构造函数会报错。一种没有继承的类,所有的类型都是type类型,如果经典类作为父类,子类调用父类构造函数会报错。
  7. 新式类
    每一个类都继承自一个基类,默认继承自object,子类可以调用基类的构造函数,所有类都有一个公共
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值