2012-02-25 3 views
0

私はクラスメソッドで引数としてリストを使用しようとしていますが、代わりに2つの引数を指定しています。私は私のコードのプロトタイプを作り、それを把握することが容易になるので、それに同じエラーを持っている:リストは2つの位置的な引数ですか?

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

class HasList: 

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

    def setList(li): 
     self.li = li 


lolo = HasList() 

lolo.setList(lol) 

私が取得エラー: はTypeError:セットリストを()2が与えられた(正確に1位置引数を取ります)

答えて

6

クラス内のメソッドの最初の引数は、常にselfです。

def setList(self, li): 
3

あなたはPythonが実際にsetList(lolo,lol)を呼び出しているん何lolo.setList(lol)を呼び出すときに、パラメータとして自己に

def setList(self, li): 
    self.li = li 
3

を渡すために忘れています。

しかしsetList例外が発生するので、あなたのコード内で唯一つのパラメータliがありますので、それがあるだけでsetListの最初の引数としてselfを追加

def setList(li): 
     self.li = li 

次のようになります。

def setList(self,li): 
     self.li = li 
関連する問題