列表是两个位置参数?

时间:2012-02-25 13:22:47

标签: python python-3.x

我正在尝试使用列表作为类方法中的参数,但它表示我在一个方法中提供了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个)

3 个答案:

答案 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