2012-02-25 34 views
0

我试图使用列表作为类方法中的参数,但它说,我给2个参数,而不是一个。我做了一个原型的我的代码,并用它得到了同样的错误,所以它会更容易掌握:列表是两个位置参数吗?

lol = ["lol1", "lol2", "lol3"] 

class HasList: 

    def __init__(self): 
     self.li = [] 

    def setList(li): 
     self.li = li 


lolo = HasList() 

lolo.setList(lol) 

的错误,我得到: 类型错误:SETLIST()将给出确切1位置参数(2 )

回答

6

类中方法的第一个参数始终为self

def setList(self, li): 
3

你忘了自我,以作为参数传递

def setList(self, li): 
    self.li = li 
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 
相关问题