看写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新式类与经典类(旧式类)的区别相关推荐

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

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

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

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

  3. python新式类和旧式类的区别_浅谈python新式类和旧式类区别

    python的新式类是2.2版本引进来的,我们可以将之前的类叫做经典类或者旧式类. 为什么要在2.2中引进new style class呢?官方给的解释是: 为了统一类(class)和类型(type) ...

  4. Python:新式类和旧式类

    1.介绍   Python2.1之前,只存在旧式类,从Python2.2开始,Python引入了新式类. 从定义形式上看,新式类和旧式类的区别:新式类在创建时继承了内置的object对象,而旧式类没有 ...

  5. python 新式类_【Python】Python 新式类介绍

    我们使用 Python 开发时, 会遇到 class A 和 class A(object) 的写法, 这在 Python2 里是有概念上和功能上的区别, 即经典类(旧式类)与新式类的区别, 英文上分 ...

  6. python 新式类和旧式类_python新式类和旧式类区别

    python的新式类是2.2版本引进来的,我们可以将之前的类叫做经典类或者旧式类. 为什么要在2.2中引进new style class呢?官方给的解释是: 为了统一类(class)和类型(type) ...

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

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

  8. python新式类和旧式类区别

    python的新式类是2.2版本引进来的,我们可以将之前的类叫做经典类或者旧式类. 为什么要在2.2中引进new style class呢?官方给的解释是: 为了统一类(class)和类型(type) ...

  9. python新式类好还是经典类_python新式类和经典类的区别?

    python新式类和经典类的区别? 1)首先,写法不一样: class A: pass class B(object): pass 2)在多继承中,新式类采用广度优先搜索,而旧式类是采用深度优先搜索. ...

最新文章

  1. 打造智慧城市 让市场成为主角
  2. 戛古 Kakku, Kekku-掸邦 shan state
  3. 单细胞一站式分析网站CeDR Atlas使用指南
  4. Redis cluster集群扩容缩容原理
  5. 浅析 Sunday 算法
  6. java并发编程实战-第三章-对象的共享
  7. 用windows api 计算文件的md5值
  8. Java 设计模式(3)单例模式
  9. HashMap中的hash算法的几个思考
  10. 4fsk调制matlab_数字调制解调技术的MATLAB与FPGA实现
  11. 15 年经验专家解读 IIoT 的挑战及应对思路!
  12. Java 并发之 FutureTask 的基本使用
  13. ORACEL使用脚本来修改表结构
  14. win10计算机本地无法连接,Win10没有本地连接怎么办?
  15. 53所高校研究生补贴政策一览表!
  16. python新浪api_python编程之API入门: (二)python3中使用新浪微博API
  17. Retinex图像增强算法
  18. 微信小程序展示弹窗的几种方式
  19. fatal error: google/protobuf/stubs/stringprintf.h: No such file or directory
  20. 华为全球发布UMTS终端商用新品

热门文章

  1. 如何区分常见 USB 接口类型
  2. 有知识和没有知识的两种人,哪种人最幸福,他们的区别在哪里?
  3. 37℃已成历史:人类体温越来越低意味着什么?
  4. 商业认知,近期与部分中小创业者一起吃饭,忽然有人谈到现在创业越来越难
  5. 这几种人往往能赚大钱
  6. 一个好的销售团队需具备的4个特点
  7. 我发现每一个生意做得不错的人都很会说话
  8. 什么是“云计算”,具体是怎么应用的?
  9. socket地址API
  10. Dubbo-Admin 2.7 本地安装和部署