多继承比较复杂,以后少用
一般在多继承时不用super函数,一般这么用
- class A():
- def __init__(self):
- print('A')
- class B():
- def __init__(self):
- print('B')
-
- class C(A,B):
- def __init__(self):
- print("C")
- A.__init__(self)
- B.__init__(self)
-
- c = C()
复制代码
你的程序中C类先继承了A类,再继承B类,如果用super函数,super先在A类中找到了__init__方法,没去管B类
试试下面这个:
- class A:
- def __init__(self):
- print('A')
- class B:
- def __init__(self):
- print('B')
-
- class C(B,A):
- def __init__(self):
- print("C")
- super().__init__()
-
- c = C()
复制代码
在A类中的__init__方法使用super,super排除了A类,在B类查找,所以执行B类的__init__方法
总之多继承很复杂,要避免使用,希望对你有用