python进阶-经典类和新式类

本文详细介绍了Python中经典类与新式类的主要区别,包括写法、搜索顺序及类型机制等方面。新式类更符合OOP理念,统一了类型机制,并改进了属性搜索方式。

经典类和新式类的区别:

1)首先,写法不一样:
class A:
    pass

class B(object):
    pass
2)搜索顺序不一样。在多继承中,新式类采用广度优先搜索,而旧式类是采用深度优先搜索。
3)类型机制不统一。新式类更符合OOP编程思想,统一了python中的类型机制,保持了class和type的统一。
对于新式类的对象执行a.__class__和type(a)结果一致,对于经典类就不一样了。

  

经典类就是经典就是旧式类,过去了就经典了,呵。

首先:
Python 2.x中默认都是经典类,只有显式继承了object才是新式类
Python 3.x中默认都是新式类,不必显式的继承object

其次:
------新式类对象可以直接通过__class__属性获取自身类型:type
------继承搜索的顺序发生了改变,经典类多继承属性搜索顺序: 先深入继承树左侧,再返回,开始找右侧;新式类多继承属性搜索顺序: 先水平搜索,然后再向上移动
------新式类增加了__slots__内置属性, 可以把实例属性的种类锁定到__slots__规定的范围之中
------新式类增加了__getattribute__方法

  

 

转载于:https://www.cnblogs.com/adamans/articles/7514165.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值