加入收藏 | 设为首页 | 会员中心 | 我要投稿 开发网_郴州站长网 (http://www.0735zz.com/)- 云通信、区块链、物联设备、云计算、站长网!
当前位置: 首页 > 教程 > 正文

Python 新式类与经典类的差异

发布时间:2021-12-11 16:17:25 所属栏目:教程 来源:互联网
导读:从 Python2.2 开始,Python 引入了 new style class。虽然从使用上看,new style class 与 classic class 没有太大的差别, 但是在实现上, 两者有很大的区别。比如,下文所展示的基类搜索机制上的不同。 #!/usr/bin/env python classic class class CA(): v

从 Python2.2 开始,Python 引入了 new style class。虽然从使用上看,new style class 与 classic class 没有太大的差别, 但是在实现上, 两者有很大的区别。比如,下文所展示的基类搜索机制上的不同。
 
#!/usr/bin/env python
""" classic class """
class CA():
    var = 'a'
class CB(CA):
    pass
class CC(CA):
    var = 'c'
class CD(CB, CC):
    pass
""" new-style class """
class NA(object):
    var = 'a'
class NB(NA):
    pass
class NC(NA):
    var = 'c'
class ND(NB, NC):
    pass
if __name__ == "__main__":
    print CD.var
    print ND.var
 
运行上述代码,CD.var 的值将是 'a', 而 ND.var 的值将是 'c'。这说明 classic class 的基类搜索机制是深度优先遍历,而 new style class 的基类搜索机制是广度优先遍历。

(编辑:开发网_郴州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读