python - Error when trying to override __init__() : TypeError: __init__() takes 1 positional argument but 2 were given
问题描述
I beleive that this error has to do with how I am passing kwargs into my base init, but I am not sure what I am doing wrong here. Could someone enlighten me? I simply want this code to print out "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()
Here is the full error:
super().__init__(self, **kwargs)
TypeError: __init__() takes 1 positional argument but 2 were given
解决方案
每个类init
方法都有self
一个参数,允许向这个新创建的类实例添加属性。调用结果super().__init__(self, **kwargs)
到. 基本构造函数只接受一个参数,因此会引发错误。Child.init
Base(Child, **kwargs)
推荐阅读
- mysql - MySQL Workbench 报告 ERROR 1822: Failed to add the foreign key constraint。缺少约束索引
- python - 如何使用 matplot lib 绘制日期与时间的大型数据集
- javascript - Bootstrap Modal 没有正确淡入
- javascript - Vuetify 密码验证包括特殊字符、大写字母、数字和最小长度 6 个字符
- c - 给出奇怪行为的 C 结构数组
- oracle - 需要修复动态向表中插入值的过程
- c - 根据字符串的字符大小与整个字符串的大小为字符串分配内存空间之间的差异
- python - 使用 pandas_profiling profile_report 时出现 MemoryError
- javascript - 如何将对象/数组分配给另一个对象?
- python - 我使用散景的交互式图表不是交互式的