c类的函数少传入了一个参数
你
本帖最后由 蒜泥魚片 于 2025-6-12 00:26 编辑
報錯
依據mro原則進行到class A時,下一個要調用class D的__init__方法卻沒有給參數?
两次
aaa
在b之后找不到init方法
class A:
def __init__(self):
super().__init__()
print("FishA")
class B:
def __init__(self):
super().__init__()
print("FishB")
class C(A):
def __init__(self, arg):
super().__init__()
print("FishC")
class D(B):
def __init__(self, arg):
super().__init__()
print("FishD")
class E(C, D):
def __init__(self, arg):
super().__init__(arg)
print("FishE")
e = E(520)
e的调用不对
因为最后一个调用的B有super(),但是其父类没有该方法吧
TypeError: D.__init__() missing 1 required positional argument: 'arg'
ECADB
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”吗?