国产成人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'>
关注

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

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

女人被男人进入后的心理变化| 穿真空短裙挤公交会被赶走吗| 女生穿露胸开又裙穿搭大忌| 亚洲一区二区三区| 强壮公借种日日躁我| 7777影院免费观看电视剧大全| 妈妈的朋友| 女子蹲坑排尿全过程| 法国《口咬》电影完整版| 小蓝| 免费观看已满十八岁在线播放电视. | 同学的母亲中字ID| 女人尝试到更粗大的心理变化| 保姆的特殊待遇5| 欧美人动物PPT免费模板大全| 丁香花影院免费观看电视剧哈尔滨| 夜夜高潮次次欢爽AV女视频 | 秘书被老板CAO到合不拢腿| 100%透光裸妆| 三个老头拥着躁我一晚| 成人AV精品视频| 不戴套瑜伽教练3)| 老牛耕田陈雪435章| 日本护士裸体做爰视频| 粗大挺进亲女小雅小滨| 《请好好疼爱里面》免费观看| 成人电影| JK制服| 禁忌:家庭密码| 边啃奶头一边躁狂会怎么样| 朋友的未婚妻| 男人吃奶摸下面弄进去会怀孕吗 | 沉沦韵母小说全文阅读| 年轻嫂子| DJ快了又快又骚的POP歌曲| 成都影院免费完整版| 《诱人的女房东3》| 爱上兄弟的母亲6集免费观看| 我把刘姨俩腿扛在肩上是哪一集的 | 第9节 妈妈女儿齐上阵| 韩国男按摩师吸乳房会得乳腺癌吗