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

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

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

我与旗袍老师疯狂床震| 一品国精和二品国精的文化意义| 老公把舌头放进我B里搅拌| 小峡子边喂奶边和我做爰| 轮流和两个男人一起很容易染病吗 | 白色空白图片| 上课装睡B被同学扣了一节课| 教练的手开始变得不安分小说| 在床上怎么做才能让男人荷尔蒙提..| 有夫之妇精油按摩的功效与作用| 爰痴癫| 麻花传剧MV在线看免费版高清| 人间水蜜桃MAC923| 暴躁老妈1-46集免费| 书记从她乳置摸进去了视频 | EXO妈妈MV高清在线观看| 欧美人动物PPT免费模板大全| 《疯狂伴娘》在线观看| 姐姐片多多免费高清电视剧| 和妈妈做了怎么办心理咨询| 恋爱之瘾电影完整版在线观看免费| 欧洲尺码和亚洲码是3D还是2D| 罗明珠| 适合夫妻二人看的小众影视剧| 局长把我奶头掏出来直接吃| 女人大阴唇夹缝是阴虚还是阳虚| 《炸裂吧!巨棒》免费阅读漫画| 精品日本一区二区三区在线观看| 白色变态蕾丝超薄开档连身袜| 后入| 闺蜜老公把我压在怀里| 77777影院在线观看电视剧大.. | 无人区免费高清版观看| 你睡我老婆我也睡你老婆台词| 美国伦理4女警| 酒鬼酒股票| 欧美黑人狂躁日本妞| 性高朝久久久久久久久久| 《公天天吃我奶躁我》| 啵啵| 法国人妻亂伦