我正在尝试使用列表作为类方法中的参数,但它表示我在一个方法中提供了2个参数。我已经制作了我的代码的原型并得到了相同的错误,因此更容易理解:
lol = ["lol1", "lol2", "lol3"]
class HasList:
def __init__(self):
self.li = []
def setList(li):
self.li = li
lolo = HasList()
lolo.setList(lol)
我得到的错误: TypeError:setList()只取1个位置参数(给定2个)
答案 0 :(得分:6)
类中方法的第一个参数始终为self
。
def setList(self, li):
答案 1 :(得分:3)
您忘记将自己作为参数传递
def setList(self, li):
self.li = li
答案 2 :(得分:3)
当你致电lolo.setList(lol)
时,Python实际上正在调用setList(lolo,lol)
。
但是setList
代码中只有一个参数li
,因此会引发异常:
def setList(li):
self.li = li
只需添加self
作为setList
的第一个参数,这样就可以了:
def setList(self,li):
self.li = li