Python 中的经典类新式类
  33Mqsls7cINW 2023年11月19日 17 0

要知道经典类和新式类的区别,首先要掌握类的继承

类的继承的一个优点就是减少代码冗余

广度优先和深度优先,这主要是在多类继承的时候会使用到

经典类和新式类的主要区别就是类的继承的方式

经典类遵循深度优先的规则,新式类遵循广度优先的规则。

至于什么是深度优先什么是广度优先,可以看如下示例:

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以前,应该是遵循深度优先的的规则。两种规则没有优劣之分。

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月19日 0

暂无评论

推荐阅读
33Mqsls7cINW