1)首先,写法不一样:

1 class A:
2     pass
3
4 class B(object):

2)在多继承中,新式类采用广度优先搜索,而旧式类是采用深度优先搜索。

3)新式类更符合OOP编程思想,统一了python中的类型机制。

Python 2.x中默认都是经典类,只有显式继承了object才是新式类

Python 3.x中默认都是新式类,不必显式的继承object

--新式类对象可以直接通过__class__属性获取自身类型:type

--继承搜索的顺序发生了改变,经典类多继承属性搜索顺序: 先深入继承树左侧,再返回,开始找右侧;新式类多继承属性搜索顺序: 先水平搜索,然后再向上移动

--新式类增加了__slots__内置属性, 可以把实例属性的种类锁定到__slots__规定的范围之中

--新式类增加了__getattribute__方法

 1 class A():
 2     def __init__(self):
 3         pass
 4     def save(self):
 5         print "This is from A"
 6 class B(A):
 7     def __init__(self):
 8         pass
 9 class C(A):
10     def __init__(self):
11         pass
12     def save(self):
13         print  "This is from C"
14 class D(B,C):
15     def __init__(self):
16         pass
17 fun =  D()
18 fun.save()
19
20 经典类的答案: This is from A
21 新式类的答案: This is from C

钻石继承

如果子类继承自两个单独的超类,而那两个超类又继承自同一个公共基类,那么就构成了钻石继承体系。

转载于:https://www.cnblogs.com/niuli1987/p/9368046.html

Python中新式类和经典类的区别,钻石继承相关推荐

  1. python中的__new__与__init__,新式类和经典类(2.x)

    在python2.x中,从object继承得来的类称为新式类(如class A(object))不从object继承得来的类称为经典类(如class A()) 新式类跟经典类的差别主要是以下几点: 1 ...

  2. python中新式类和经典类

    python中的类分为新式类和经典类,具体有什么区别呢?简单的说, 1.新式类都从object继承,经典类不需要. Python 2.x中默认都是经典类,只有显式继承了object才是新式类 Pyth ...

  3. python新式类和经典类区别_Python中新式类和经典类的区别,钻石继承

    1)首先,写法不一样: class A: pass class B(object): 2)在多继承中,新式类采用广度优先搜索,而旧式类是采用深度优先搜索. 3)新式类更符合OOP编程思想,统一了pyt ...

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

    1.新式类和经典类 在Python 2及以前的版本中,由任意内置类型派生出的类(只要一个内置类型位于类树的某个位置),都属于"新式类",都会获得所有"新式类"的 ...

  5. python单例模式控制成只初始化一次,常规型的python单例模式在新式类和经典类中的区别。...

    单例模式的写法非常多,但常规型的单例模式就是这样写的,各种代码可能略有差异,但核心就是要搞清楚类属性 实例属性,就很容易写出来,原理完全一模一样. 如下: 源码: class A(object):de ...

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

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

  7. Python新式类与经典类(旧式类)的区别

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

  8. python3新式类_Python中新式类与经典类的区别详析

    1.新式类与经典类 在Python 2及以前的版本中,由任意内置类型派生出的类(只要一个内置类型位于类树的某个位置),都属于"新式类",都会获得所有"新式类"的 ...

  9. python经典类新式类_Python的新式类和经典类

    1. 前言 python在2.2版本中引入了descriptor功能,也正是基于这个功能实现了新式类(new-styel class)的对象模型, 同时解决了之前版本中经典类(classic clas ...

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

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

最新文章

  1. vmware 报错解决:The system cannot find the path specified.
  2. 一个软件网络连接异常_手机也能玩PC大作了,串流软件Steam Link登陆iOS App Store...
  3. easyUI的目录结构
  4. Kubernetes入门——Kubernetes应用部署
  5. Linux文件系统与日志
  6. (10)C#偷懒的开始永无止境的循环?
  7. mysql not in 转化_[转]mysql里not in语句怎么写 | 学步园
  8. marathon的高可用服务自动发现和负载均衡
  9. adb工具箱_安卓福音,史上最强搞机工具箱,一键修手机
  10. 计算机术语中cad代表,计算机术语中,CAD表示什么
  11. html5 游戏 响应式,关于html5:响应式游戏网页有什么特点呢
  12. 【最新版】贝塔智能挪车v2.5.2+前端-已测试
  13. 《设计模式》笔记 02 - 实例研究:设计一个文档编辑器
  14. ios点击推送闪退_王者ios14苹果手机闪退已修复,腾讯痛失百万玩家能否再回来...
  15. 关于Linux mint更换中文字体后全局楷体修改办法
  16. CREO图文教程:三维设计案例之油缸顶物体的骨架模型设计图文教程之详细攻略
  17. Android 蓝牙 ble 随机地址深层次分析
  18. lol黑屏显示服务器,LOL英雄联盟进去开始就黑屏,英雄服务器中断进不去
  19. android+动态模糊效果,Android 动态高斯模糊效果教程
  20. 兰伯特(Lambert)光照模型总结

热门文章

  1. django小站,数据3w+
  2. Jasmine基础API
  3. oracle查看表空间的几个sql
  4. [zt]C++ traits
  5. h3c等价路由(rip)
  6. 搜索数据android ui,搜索概览  |  Android 开发者  |  Android Developers
  7. js 禁用和解除禁用按钮_js禁用button,js 将某个按钮禁用5秒钟
  8. java filter的类_Java FilterOutputStream类
  9. c++怎么确定一个整数有几位_《小数乘整数》说课稿
  10. 编写二分查找和使用集合类的二分查找实现