要知道经典类和新式类的区别,首先要掌握类的继承
类的继承的一个优点就是减少代码冗余
广度优先和深度优先,这主要是在多类继承的时候会使用到
经典类和新式类的主要区别就是类的继承的方式
经典类遵循深度优先的规则,新式类遵循广度优先的规则。
至于什么是深度优先什么是广度优先,可以看如下示例:
class A:
def save(self):
print("a")
class B(A):
def save(self):
print("b")
class C(A):
def save(self):
print("c")
class D(B, C):
def __init__(self):
pass
d = D()
d.save()
>> b
在新式类中,D是继承B和C的,按照顺序,首先去找B
如果在B里面能找到实例化对象,便继承B,不再往别的地方寻找,
如果没有,就会接着找C,而不是找B的父亲A!
但是在经典类中,如果B中找不到,它会优先考虑B的父亲A,而不是C。
在 python3 中,都是遵循广度优先的规则
在python2.7以前,应该是遵循深度优先的的规则。两种规则没有优劣之分。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/213505.html