我相信这个错误与我将kwargs传递给我的基本init有关,但是我不确定在这里我做错了什么。有人可以启发我吗?我只是希望此代码打印出“ 1 2”
def main():
child = Child(2, first=1)
child.display()
class Base():
def __init__(self, **kwargs):
print(kwargs.get("first", "nice try"))
class Child(Base):
def __init__(self, value, **kwargs):
super().__init__(self, **kwargs)
self.value = value
def display(self):
print(self.value)
main()
这是完整的错误:
super().__init__(self, **kwargs)
TypeError: __init__() takes 1 positional argument but 2 were given
答案 0 :(得分:0)
每个类init
方法都以self
作为参数,以允许向该新创建的类实例添加属性。
在super().__init__(self, **kwargs)
中调用Child.init
将导致Base(Child, **kwargs)
。基本构造函数仅接受一个参数,因此会引发错误。