继承的时候,init父类时,平时用ide写代码习惯了这样写,因为敲一个super再回车就有了这么一行
1
| super(C, self).__init__()
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| class A: def __init__(self): self.a = "a" class B: def __init__(self): self.b = "b"
class C(A,B): def __init__(self): super(C, self).__init__()
if __name__ == '__main__': c = C() print(c.__dict__)
|
可以看出问题了,C类只init了A类,并没有init B类
下面是我瞎摸出来的解决方法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| class A: def __init__(self): self.a = "a"
class B: def __init__(self): self.b = "b"
class C(A, B): def __init__(self): A.__init__(self) B.__init__(self)
if __name__ == '__main__': c = C() print(c.__dict__)
|