首页 » InfoTech »

Python的新式类(new style class)

2017年1月22日 / 75次阅读
Python

打开支付宝首页,搜索“529018372”,即可领取红包!可重复领。

特色图片

Python的新式类,其实已经不新了,从2.2版本就开始支持。只是麦新杰刚刚学到这里,新手感觉很新!

Python新式类是区别于以前的经典类而言的。在2.2之前,类和类型是不同的,比如:a是ClassA的一个实例,那么a.__class__返回 ‘ class __main__.ClassA‘ ,type(a)返回总是<type 'instance'>;而引入新类后,比如:ClassB是个新类,b是ClassB的实例,b.__class__和type(b)都是返回‘class '__main__.ClassB' ,这样就统一了。class和type统一了

>>>
>>> type(kk)
<class 'test.Employee'>
>>> kk.__class__
<class 'test.Employee'>
>>>
>>> type(1)
<class 'int'>
>>> type(1.0)
<class 'float'>
>>> type('1')
<class 'str'>
>>> type([])
<class 'list'>
>>> type({})
<class 'dict'>
>>> type(())
<class 'tuple'>
>>>

 

 

在使用上:

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

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

 

Python新式类还有如下一些特点:

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

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

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

新式类增加了__getattribute__方法

本文链接:http://www.maixj.net/ict/python-new-style-class-14010
云上小悟 麦新杰(QQ:1093023102)

相关文章

评论是美德

无力满足评论实名制,评论对非实名注册用户关闭,有事QQ:1093023102.


前一篇:
后一篇:

栏目精选

云上小悟,麦新杰的独立博客

Ctrl+D 收藏本页

栏目

AD

ppdai

©Copyright 麦新杰 Since 2014 云上小悟独立博客版权所有 备案号:苏ICP备14045477号-1。云上小悟网站部分内容来源于网络,转载目的是为了整合信息,收藏学习,服务大家,有些转载内容也难以判断是否有侵权问题,如果侵犯了您的权益,请及时联系站长,我会立即删除。

网站二维码
go to top