• 新式类中的多继承需要注意的


    以下只针对新式类,旧式类则无下列限制

    多继承不可重复继承(或者说既当孙子又当儿子或者从孙子等等)

    class A:

        pass

    class B(A):

        pass

    class C(A,B):

        pass

    test=C() #重复继承  ,c继承了A表明他是a的儿子,但又继承了b表明他是a的孙子,那他到底是孙子还是儿子?(但是此处如果改为C(B,A)则不报错,也就是说继承顺序中排在后面的辈分一定不小于排在前面的,不过这样的话多此一举,只是不报错而已)

    第二个错误是,在新式类中,继承顺序前后矛盾

    class a(object):

        pass

    class b(object):

        pass

    class c(a,b):

        pass

    class d(b,a):

        pass

    class e(c,d):

        pass

    #前面c已经声明了继承顺序是a,b,后面d却违背了前面拟定的继承顺序。因为新式类中是以广度优先(c3算法)的原则确定实例属性,所以不仅要理清祖先谱中的辈分关系,还要理清同辈之间的前后次序,不能一会儿在前一会儿再后

  • 相关阅读:
    day9文件处理
    day8字符编码
    js小数乘法精确率问题
    webstorm上传vue代码至git
    vue项目关闭eslint检查
    MongoDB相关操作
    Redis持久化存储
    Redis 数据类型
    linux常用命令
    初识NoSQL
  • 原文地址:https://www.cnblogs.com/saolv/p/8961269.html
Copyright © 2020-2023  润新知