Python中新式类和经典类的区别,钻石继承
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中新式类和经典类的区别,钻石继承相关推荐
- python中的__new__与__init__,新式类和经典类(2.x)
在python2.x中,从object继承得来的类称为新式类(如class A(object))不从object继承得来的类称为经典类(如class A()) 新式类跟经典类的差别主要是以下几点: 1 ...
- python中新式类和经典类
python中的类分为新式类和经典类,具体有什么区别呢?简单的说, 1.新式类都从object继承,经典类不需要. Python 2.x中默认都是经典类,只有显式继承了object才是新式类 Pyth ...
- python新式类和经典类区别_Python中新式类和经典类的区别,钻石继承
1)首先,写法不一样: class A: pass class B(object): 2)在多继承中,新式类采用广度优先搜索,而旧式类是采用深度优先搜索. 3)新式类更符合OOP编程思想,统一了pyt ...
- python中新式类和经典类的区别
1.新式类和经典类 在Python 2及以前的版本中,由任意内置类型派生出的类(只要一个内置类型位于类树的某个位置),都属于"新式类",都会获得所有"新式类"的 ...
- python单例模式控制成只初始化一次,常规型的python单例模式在新式类和经典类中的区别。...
单例模式的写法非常多,但常规型的单例模式就是这样写的,各种代码可能略有差异,但核心就是要搞清楚类属性 实例属性,就很容易写出来,原理完全一模一样. 如下: 源码: class A(object):de ...
- python经典类新式类_Python新式类与经典类(旧式类)的区别
看写poc的时候看到的,思考了半天,现在解决了 转载自http://blog.csdn.net/zimou5581/article/details/53053775 Python中类分两种:旧式类和新 ...
- Python新式类与经典类(旧式类)的区别
看写poc的时候看到的,思考了半天,现在解决了 转载自http://blog.csdn.net/zimou5581/article/details/53053775 Python中类分两种:旧式类和新 ...
- python3新式类_Python中新式类与经典类的区别详析
1.新式类与经典类 在Python 2及以前的版本中,由任意内置类型派生出的类(只要一个内置类型位于类树的某个位置),都属于"新式类",都会获得所有"新式类"的 ...
- python经典类新式类_Python的新式类和经典类
1. 前言 python在2.2版本中引入了descriptor功能,也正是基于这个功能实现了新式类(new-styel class)的对象模型, 同时解决了之前版本中经典类(classic clas ...
- python 新式类 旧式类_Python新式类与经典类(旧式类)的区别
Python中类分两种:旧式类和新式类: ➤新式类都从object继承,经典类不需要. ➤新式类的MRO(method resolution order 基类搜索顺序)算法采用C3算法广度优先搜索,而 ...
最新文章
- vmware 报错解决:The system cannot find the path specified.
- 一个软件网络连接异常_手机也能玩PC大作了,串流软件Steam Link登陆iOS App Store...
- easyUI的目录结构
- Kubernetes入门——Kubernetes应用部署
- Linux文件系统与日志
- (10)C#偷懒的开始永无止境的循环?
- mysql not in 转化_[转]mysql里not in语句怎么写 | 学步园
- marathon的高可用服务自动发现和负载均衡
- adb工具箱_安卓福音,史上最强搞机工具箱,一键修手机
- 计算机术语中cad代表,计算机术语中,CAD表示什么
- html5 游戏 响应式,关于html5:响应式游戏网页有什么特点呢
- 【最新版】贝塔智能挪车v2.5.2+前端-已测试
- 《设计模式》笔记 02 - 实例研究:设计一个文档编辑器
- ios点击推送闪退_王者ios14苹果手机闪退已修复,腾讯痛失百万玩家能否再回来...
- 关于Linux mint更换中文字体后全局楷体修改办法
- CREO图文教程:三维设计案例之油缸顶物体的骨架模型设计图文教程之详细攻略
- Android 蓝牙 ble 随机地址深层次分析
- lol黑屏显示服务器,LOL英雄联盟进去开始就黑屏,英雄服务器中断进不去
- android+动态模糊效果,Android 动态高斯模糊效果教程
- 兰伯特(Lambert)光照模型总结
热门文章
- django小站,数据3w+
- Jasmine基础API
- oracle查看表空间的几个sql
- [zt]C++ traits
- h3c等价路由(rip)
- 搜索数据android ui,搜索概览 | Android 开发者 | Android Developers
- js 禁用和解除禁用按钮_js禁用button,js 将某个按钮禁用5秒钟
- java filter的类_Java FilterOutputStream类
- c++怎么确定一个整数有几位_《小数乘整数》说课稿
- 编写二分查找和使用集合类的二分查找实现