解释一下TypeError: __init__() takes 1 positional argument but 2 were given
时间: 2023-10-16 20:23:20 浏览: 179
django报错:add_atr() takes 0 positional arguments but 1 was given
这个错误通常在实例化对象时出现,它表示你给了太多的参数给一个方法,而这个方法只接受一个参数。具体来说,这个错误是由于你在实例化一个对象时,给了一个额外的参数,但是这个参数并不在这个类的构造函数(__init__()方法)中定义。因此,Python不知道如何处理这个额外的参数,会抛出这个TypeError错误。
例如,假设你有一个类Person,它有一个构造函数__init__(),它接受一个参数name,代码如下:
```
class Person:
def __init__(self, name):
self.name = name
```
那么,当你实例化这个类时,你只需要传入一个名字参数即可,如下:
```
p = Person("Tom")
```
如果你尝试传入两个参数,如下:
```
p = Person("Tom", 18)
```
这时,Python会抛出TypeError: __init__() takes 1 positional argument but 2 were given错误,因为Person类只接受一个参数,而你传入了两个参数。
阅读全文