经典类和新式类的主要区别就是类的继承的方式 ,经典类遵循深度优先的规则,新式类遵循广度优先的规则。至于什么是深度优先什么是广度优先,可以看如下示例:

class A(object):def printA(self):print('A')
class B(A):def printB(self):print('B')
class C(A):def printC(self):print('C')
class D(B,C):def printD(self):print('D')
r1 = D()
r1.printA()

在新式类中,D是继承B和C的,按照顺序,首先去找B,如果在B里面能找到实例化对象,便继承B,不再往别的地方寻找,如果没有,就会接着找C,而不是找B的父亲A!

但是在经典类中,如果B中找不到,它会优先考虑B的父亲A,而不是C。

在python3中,都是遵循广度优先的规则,在python2.7以前,应该是遵循深度优先的的规则。两种规则没有优劣之分。

python 经典类与新式类相关推荐

  1. Python中经典类和新式类的区别

    首先了解一下什么是经典类,什么是新式类 class Person: #经典类pass class Person2(object): #新式类pass #类名首字母都大写 #在python3里面经典类和 ...

  2. python经典类新式类_Python新式类与经典类(旧式类)的区别

    看写poc的时候看到的,思考了半天,现在解决了 转载自http://blog.csdn.net/zimou5581/article/details/53053775 Python中类分两种:旧式类和新 ...

  3. python 经典类和新式类

    DAY 12. python新式类和旧式类 继承自object基类的类叫做新式类,否则叫做旧式类,python3中的类默认是新式类,之前版本默认是旧式类 root@kail:~# python pyt ...

  4. Python的面向对象,魔术方法、类的三大特征、自省、实例空间、经典类与新式类

    目录 1.什么是面向对象 1.1 面向过程 1.2 面向对象 1.3 面向对象的优点 2.类 2.1 什么是类.对象,方法和属性 2.2 类的定义和使用 2.2.1 类名规范和类的写法 2.3 魔术方 ...

  5. python 新式类 旧式类_Python新式类与经典类(旧式类)的区别

    Python中类分两种:旧式类和新式类: ➤新式类都从object继承,经典类不需要. ➤新式类的MRO(method resolution order 基类搜索顺序)算法采用C3算法广度优先搜索,而 ...

  6. Python经典类与新式类已经经典继承和新式继承;以及继承顺序

    经典类和新式类,以及经典继承和新式继承 # class Animal: #经典类 class Animal(object): #新式类def __init__(self,name):self.name ...

  7. 经典类与新式类的继承顺序

    1 #经典类与新式类的继承顺序 2 3 class Teacher(object): 4 cn='Harvard' 5 def __init__(self,name,age,sex): 6 self. ...

  8. 多继承、经典类与新式类、新式类的C3算法详解

    多继承Python2版本class A(object) ---> 新式类class B ---> 经典类 Python3版本默认都是新式类 经典类和新式类的不同在于多继承时继承的顺序不同经 ...

  9. python经典类和新式类_python中经典类和新式类的区别

    在定义class的时候,有几种常见的写法,比如: class A: pass class B(): pass class C(object): pass 在python 2中查看以上各个class的类 ...

最新文章

  1. PhpExcel中文帮助手册|PhpExcel基本使用方法及常见问题解答
  2. HDU - 5335 Walk Out(bfs+路径输出+贪心)
  3. 2021-2025年中国冲浪板鳍行业市场供需与战略研究报告
  4. minHJ函数matlab黄金分割法,黄金分割法求极小值
  5. 练习4闭合导线平差计算
  6. CFT每日一题之 天下武功,唯快不破
  7. 7-163 判断正整数n是否同时含有奇数和偶数
  8. netty报错:LEAK: ByteBuf.release() was not called before it‘s garbage-collected
  9. 怎么用计算机弹大田后生仔,林啟得 《大田后生仔》吉他谱C调吉他弹唱谱
  10. 成功解决无法写入输出文件,此实现不是Windows平台FIPS验证加密算法的一部分
  11. uniapp 安卓app 实现app加固(360加固)
  12. Quartz - Java 任务调度
  13. 什么是MVC设计模式?
  14. 测一测自己的Sql能力之MYSQL的GROUPBY你弄懂了吗?
  15. Linux中动态探针kprobes
  16. 传统算法与神经网络算法,最简单的神经网络算法
  17. 《融智学进阶文集》01:间接计算模型和间接形式化方法
  18. 利用Wireless Repeater(无线中继模式)扩大你的无线网络
  19. 网易我的世界导入皮肤服务器显示吗,网易我的世界导入皮肤方法 | 手游网游页游攻略大全...
  20. SpringBoot - 网络请求客户端WebClient使用详解

热门文章

  1. shell脚本的坑坑洼洼
  2. Worksoft Certify学习之路
  3. 计算机网络安全技术相关文献,计算机网络安全技术相关论文参考文献 哪里有计算机网络安全技术参考文献...
  4. 人脸识别小区门禁系统_小区人脸识别门禁系统安全吗?
  5. SpringMVC(一)视图解析器
  6. 网络攻击(Cyber Attacks,也称赛博攻击)
  7. 【菜鸟窝】Hadoop生态系统、Hadoop虚拟机环境准备、Hadoop环境搭建(含安装包和教程)
  8. Retrieve, Read, Rerank: Towards End-to-End Multi-Document Reading Comprehension
  9. 微信内置浏览器无法下载app(Android/ios)软件 微信内下载链接打不开的解决方法
  10. 纳米金颗粒修饰核酸产品|碳纳米管载核酸-DNA/RNA材料|解析说明