韩漫免费漫画在线观看方法,《好好疼爱里面》免费看,年轻漂亮的女士护士内衣,妈妈醉酒后把我当爸爸电视剧

文章 > 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'>
关注

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

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

一边啃奶头一边躁狂会怎么样| 一枪战三母4国语版免费观看| 女子蹲下尿裤子的视频| 我在公车被蹭水后当晚就来了月经| 美女和帅哥一起努力生产豆浆| 男朋友摸完小花园小肚子有点痛| 亚洲日韩AV精品一区二区| 欧美片《肉欲进入》| 暴躁少女CSGO免费观看| 比白洁还牛的四大书| 三个老师轮流给学生布置作业 | 女朋友太骚了每次进去都觉得很疼| 国产旗袍裙人妻人伦| 年轻的朋友电影在线观看免费完整| 亲吻姐姐| 女儿与爸爸高清免费版电视剧 | 儿媳妇陪我睡觉的经典句子 | 密爱| 打扑牌不盖被子怎么办| 成品PPT网站大片入口| 年经母年经3的| 粗大挺进亲女小雅小滨| 丫头把腿开大让我添添| 轮流和两个男人一起很容易染病吗| 鲁鲁射击免费播放电视剧全部| 九九在线观看免费播放大全电视剧 | 佐藤| 半插和全插有什么区别| 欧美电影免费观看电视剧大全| 打牌生猴子的视频大全| 无情扌雷辶鬲| 与公在客厅添我荫蒂视频| 老少配BXMBXMBXMJJ| 《妻子的肉体偿还》5| 中文在线字幕观看电视剧 | 伦理《播种》| 50多岁熟妇泻火原因处理方法| 成版人黄瓜视频APP| 男人添女人荫道口视频| 暴躁老阿姨CSGO技能推荐大全 | 欧美XBOX与IPHONE