一 、经典类与新式类(掌握)

  新式类:

    1)但凡继承object的类或子孙后代类都是新式类

    2)在python3中全部的类都是新式类(默认设置继承object)

 

  经典类:

    1)务必在python2中才会出现经典类与新式类之分

    2)在python2中,但凡沒有继承object的类 ,都是经典类

 

# 新式类: class User(object): pass class Sub(User): pass # 在python3中全部的类都是新式类(默认设置继承object) class Bar: pass print(Bar.__bases__) # (,)

 

 

二、新式类搜索特性和方式的次序(掌握)

  在python3中出示了一个新式类搜索特性和方式的次序的内嵌方式:

    mro():会把当今类的继承关联整理出来

    启用mro回到的是一个继承编码序列:

      super()的继承编码序列严苛遵照mro继承编码序列

class Father1: x = 10 class Father2: x = 20 class Father3: x = 30 # 多继承的状况下:从左往右 class Sub(Father1, Father2, Father3): # 留意:__int__ 并不是 __init__ def __init__(self): print(super().x) obj = Sub() print(Sub.mro()) # 子类和父类上都沒有这一方式,可是object中有,因此 从object中寻找.__dir__ print(Sub.__dir__)

  实行結果:

10 [<class '__main__.Sub'>, <class '__main__.Father1'>, <class '__main__.Father2'>, <class '__main__.Father3'>, <class 'object'>] '__dir__' of 'object' objects>

 

文章来源于网络 ,如有侵权请联系站长QQ61910465删除
本文版权归趣快排www.sEoguruBlog.com 所有,如有转发请注明来出,竞价开户托管,seo优化请联系QQ✈61910465