TypeError: __init__() takes 3 positional arguments but 5 were given怎么解决
时间: 2023-12-29 20:05:50 浏览: 414
django报错:add_atr() takes 0 positional arguments but 1 was given
这个错误通常是因为在调用类的构造函数时传递了多余的参数。在Python中,构造函数的第一个参数通常是self,它代表类的实例本身,而后面的参数才是我们自己定义的参数。因此,当我们在调用构造函数时,应该将self参数忽略掉,只传递后面的参数。如果你的构造函数只需要3个参数,但是你传递了5个参数,就会出现这个错误。
解决方法:
1.检查你的构造函数是否真的需要5个参数,如果不需要,就删除多余的参数。
2.检查你在调用构造函数时是否传递了多余的参数,如果是,就删除多余的参数。
举个例子,如果你的构造函数只需要3个参数,但是你传递了5个参数,就会出现这个错误。你可以这样修改代码:
```python
class MyClass:
def __init__(self, name, age, like):
self.name = name
self.age = age
self.like = like
# 调用构造函数时只传递3个参数
my_object = MyClass("Tom", 18, "reading")
```
阅读全文