国产成人AV无码一二三区,少女1到100集,国产精品久久久久精品综合紧,巜公妇之诱感肉欲HD在线播放

文章 > Python常见问题 > 一文读懂python新式类和旧式类区别

一文读懂python新式类和旧式类区别

头像

silencement

2019-07-19 15:25:572772浏览 · 0收藏 · 0评论

python的新式类是2.2版本引进来的,我们可以将之前的类叫做经典类或者旧式类。

为什么要在2.2中引进new style class呢?官方给的解释是:

为了统一类(class)和类型(type)。

在2.2之前,比如2.1版本中,类和类型是不同的,如a是ClassA的一个实例,那么a.__class__返回 ‘ class    __main__.ClassA‘ ,type(a)返回总是<type 'instance'>。而引入新类后,比如ClassB是个新类,b是ClassB的实例,b.__class__和type(b)都是返回‘class '__main__.ClassB' ,这样就统一了。

引入新类后,还有其他的好处,比如更多的内置属性将会引入,描述符的引入,属性可以来计算等等。

为了向前兼容,默认情况下用户定义的类为经典类,新类需要继承自所有类的基类 object 或者继承自object的新类。

值得注意的地方是,虽然使用的是最新的python(2.7),但是一些特性不会在旧式类起作用。

所以,为了确保自己使用的是新式类,有两种以下方法:

1. 元类,在类模块代码的最前面加入如下代码 __metaclass__ = classname(自定义的某个新式类)。

2. 类都从内建类object直接或者间接地继承。

如果不需要兼容旧式类,旧版本的类,那么就保持都是新式类。

在Python3里面,不存在这些问题了,因为所有的类都是object类的子类(隐式)。

代码示例:

class oldClass:            #经典类
    def __init__( self ):
        pass
  
class newClass(object):    #新类
    def __init__( self ):
        pass 
  
c1 = oldClass()
c2 = newClass()
  
c1.__class__            # 输出-> <class __main__.oldClass at 0x0137BF10>
type(c1)                # 输出-> <type 'instance'>
  
c2.__class__            # 输出-><class '__main__.newClass'>
type(c2)                # 输出-><class '__main__.newClass'>
关注

关注公众号,随时随地在线学习

本教程部分素材来源于网络,版权问题联系站长!

《禁忌2》的完整演员表| 恋爱之瘾电影完整版的免费| 姨母的绣感中字3| 李丽珍唯一一部打真军电影| 《男医生的特殊治疗》| 公天天吃我奶躁我高H漫画| 蜜桃成熟时| 国产一区二区三区| 三男一女CP免费观看电视剧大全| 总裁的情人| 美女比基尼游泳图片视频| 爸爸吃女儿奶奶高情商回复| 女性私处蹲下拍照有疙瘩| 王勉| 老公不在小叔子当老公| 《卻望1973》娃娃脸| 在电影院里拨开内裤挺进| 免费双男主做酱酱酿酿的动漫| 剧烈运动摇床打扑克视频原声| 《疯狂72小时》韩剧| 下面的小嘴又饿了| 爸爸的大DJ小说| 有夫之妇精油按摩的功效与作用 | 翁止熄痒苏钥第9章的内容| 在线观看免费观看在线NBA| 免费B站看大片真人电视剧| 《年轻朋友的妻子3》| 爸老师40集全免费播放电影演员.| 《帐篷里的秘密》第一季| 老和尚猛挺进她莹莹的体导演是谁 | 人犬兽人在线观看免费完整| 教室停电插班花赵柔笔趣阁九流糖 | 一前一后三个人一起的游戏规则| 《炸裂吧!巨棒》免费阅读漫画| 抵达花心乖叫老公是第几集| 性别饥饿妈妈| 男J进女黄性色AV视频| 狠狠干影院| 无码粉嫩小滨无套在线观看...| 黑丝美女| -个人在线观看免费高清电视剧