A的init没有支持传入参数?
3
C/D中有self和arg两个参数,A/B中只有self一个参数,super()不能很好继承吧
111
Traceback (most recent call last):
File "<pyshell#354>", line 1, in <module>
e = E(520)
File "<pyshell#353>", line 3, in __init__
super().__init__(arg)
File "<pyshell#349>", line 3, in __init__
super().__init__()
File "<pyshell#341>", line 3, in __init__
super().__init__()
TypeError: D.__init__() missing 1 required positional argument: 'arg'
很有收获{:9_236:}
学习学习
还有隐藏内容???
错误是因为添加了位置参数“arg”吗?
好好学习
E520
完了,越来越
看不懂
class A:
def __init__(self, *args, **kwargs):# 添加万能参数接收
super().__init__(*args, **kwargs)# 透传给后续父类
print("FishA")
class B:
def __init__(self, *args, **kwargs):# 同理
super().__init__(*args, **kwargs)
print("FishB")
class C(A):
def __init__(self, arg, *args, **kwargs):
super().__init__(*args, **kwargs)# 透传多余的参数
print("FishC")
class D(B):
def __init__(self, arg, *args, **kwargs):
super().__init__(*args, **kwargs)
print("FishD")
class E(C, D):
def __init__(self, arg):
super().__init__(arg)# 只需传递一次参数
print("FishE")
e = E(520)
1
10
B没有上级了,不应该用super?
从A调用D,少了一个参数。引发TypeError
学习学习
1
好好学习天天向上