Python新式类与经典类(旧式类)的区别
看写poc的时候看到的,思考了半天,现在解决了
转载自http://blog.csdn.net/zimou5581/article/details/53053775
Python中类分两种:旧式类和新式类:
➤新式类都从object继承,经典类不需要。
➤新式类的MRO(method resolution order 基类搜索顺序)算法采用C3算法广度优先搜索,而旧式类的MRO算法是采用深度优先搜索
➤新式类相同父类只执行一次构造函数,经典类重复执行多次。
其中:
➤截止到python2.1,只存在旧式类。旧式类中,类名和type是无关的:如果x是一个旧式类,那么x.__class__定义了x的类名,但是type(x)总是返回<type 'instance'>。这反映了所有的旧式类的实例是通过一个单一的叫做instance的内建类型来实现的,这是它和类不同的地方。
➤新式类是在python2.2为了统一类和实例引入的。一个新式类只能由用户自定义。如果x是一个新式类的实例,那么type(x)和x.__class__是一样的结果(尽管这不能得到保证,因为新式类的实例的__class__方法是允许被用户覆盖的)。
➤Python 2.x中默认都是经典类,只有显式继承了object才是新式类
➤Python 3.x中默认都是新式类,经典类被移除,不必显式的继承object
Python2.x中:
[python] view plain copy
class A: pass
class B: pass
class C(B): pass
class D(C,A): pass
执行顺序为:D->C->B,->A
[python] view plain copy
class A(object): pass
class B(object): pass
class C(object): pass
class D(A,B,C): pass
执行顺序为: D->A->B->C->Object
转载于:https://www.cnblogs.com/drkang/p/8585826.html
Python新式类与经典类(旧式类)的区别相关推荐
- python经典类新式类_Python新式类与经典类(旧式类)的区别
看写poc的时候看到的,思考了半天,现在解决了 转载自http://blog.csdn.net/zimou5581/article/details/53053775 Python中类分两种:旧式类和新 ...
- python 新式类 旧式类_Python新式类与经典类(旧式类)的区别
Python中类分两种:旧式类和新式类: ➤新式类都从object继承,经典类不需要. ➤新式类的MRO(method resolution order 基类搜索顺序)算法采用C3算法广度优先搜索,而 ...
- python新式类和旧式类的区别_浅谈python新式类和旧式类区别
python的新式类是2.2版本引进来的,我们可以将之前的类叫做经典类或者旧式类. 为什么要在2.2中引进new style class呢?官方给的解释是: 为了统一类(class)和类型(type) ...
- Python:新式类和旧式类
1.介绍 Python2.1之前,只存在旧式类,从Python2.2开始,Python引入了新式类. 从定义形式上看,新式类和旧式类的区别:新式类在创建时继承了内置的object对象,而旧式类没有 ...
- python 新式类_【Python】Python 新式类介绍
我们使用 Python 开发时, 会遇到 class A 和 class A(object) 的写法, 这在 Python2 里是有概念上和功能上的区别, 即经典类(旧式类)与新式类的区别, 英文上分 ...
- python 新式类和旧式类_python新式类和旧式类区别
python的新式类是2.2版本引进来的,我们可以将之前的类叫做经典类或者旧式类. 为什么要在2.2中引进new style class呢?官方给的解释是: 为了统一类(class)和类型(type) ...
- python新式类和经典类区别_Python中新式类和经典类的区别,钻石继承
1)首先,写法不一样: class A: pass class B(object): 2)在多继承中,新式类采用广度优先搜索,而旧式类是采用深度优先搜索. 3)新式类更符合OOP编程思想,统一了pyt ...
- python新式类和旧式类区别
python的新式类是2.2版本引进来的,我们可以将之前的类叫做经典类或者旧式类. 为什么要在2.2中引进new style class呢?官方给的解释是: 为了统一类(class)和类型(type) ...
- python新式类好还是经典类_python新式类和经典类的区别?
python新式类和经典类的区别? 1)首先,写法不一样: class A: pass class B(object): pass 2)在多继承中,新式类采用广度优先搜索,而旧式类是采用深度优先搜索. ...
最新文章
- 打造智慧城市 让市场成为主角
- 戛古 Kakku, Kekku-掸邦 shan state
- 单细胞一站式分析网站CeDR Atlas使用指南
- Redis cluster集群扩容缩容原理
- 浅析 Sunday 算法
- java并发编程实战-第三章-对象的共享
- 用windows api 计算文件的md5值
- Java 设计模式(3)单例模式
- HashMap中的hash算法的几个思考
- 4fsk调制matlab_数字调制解调技术的MATLAB与FPGA实现
- 15 年经验专家解读 IIoT 的挑战及应对思路!
- Java 并发之 FutureTask 的基本使用
- ORACEL使用脚本来修改表结构
- win10计算机本地无法连接,Win10没有本地连接怎么办?
- 53所高校研究生补贴政策一览表!
- python新浪api_python编程之API入门: (二)python3中使用新浪微博API
- Retinex图像增强算法
- 微信小程序展示弹窗的几种方式
- fatal error: google/protobuf/stubs/stringprintf.h: No such file or directory
- 华为全球发布UMTS终端商用新品