首页 > 编程语言 > 详细

python中经典类和新式类的区别

时间:2019-02-12 13:07:01      阅读:181      评论:0      收藏:0      [点我收藏+]

要知道经典类和新式类的区别,首先要掌握类的继承。类的继承的一个优点就是减少代码,而且使代码看起来结构很完整。

那什么是经典类,什么是新式类呢?

经典类和新式类的主要区别就是类的继承的方式 ,经典类遵循深度优先的规则,新式类遵循广度优先的规则。至于什么是深度优先什么是广度优先,可以看如下示例:

技术分享图片
# Author:Zhang Zhao
class A(object):
    def __init__(self):
        print(A)
class B(A):
    pass
    # def __init__(self):
    #     print(‘B‘)
class C(A):
    def __init__(self):
        print(C)
class D(B,C):
    pass
    # def __init__(self):
    #     print(‘D‘)
r1 = D()
View Code

在新式类中,D是继承B和C的,按照顺序,首先去找B,如果在B里面能找到实例化对象,便继承B,不再往别的地方寻找,如果没有,就会接着找C,而不是找B的父亲A!

但是在经典类中,如果B中找不到,它会优先考虑B的父亲A,而不是C。

在python3中,都是遵循广度优先的规则,在python2.7以前,应该是遵循深度优先的的规则。两种规则没有优劣之分。

 

python中经典类和新式类的区别

原文:https://www.cnblogs.com/zz1314/p/10364417.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!