以下只针对新式类,旧式类则无下列限制
多继承不可重复继承(或者说既当孙子又当儿子或者从孙子等等)
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算法)的原则确定实例属性,所以不仅要理清祖先谱中的辈分关系,还要理清同辈之间的前后次序,不能一会儿在前一会儿再后