2017-04-17 5 views
0

私は文書のリストを渡すクラスがあり、この方法では、それはそれらの文書のリストを作成し、取りファイルのリスト:エラーが正確に1引数

def create_list_of_files(self): 
    mylist = [] 
    with open(self.files_to_copy) as stream: 
     for line in stream: 
      mylist.append(line.strip()) 
    return mylist 

、私はクラス内の別の方法でメソッドにアクセスしよう:

def copy_files(self): 
    t = create_list_of_files() 
    for i in t: 
     print i 

その後、私はトンを実行します彼はif __name__ == "__main__"の下に次

a = Copy() 
a.copy_files() 

これはスロー:

TypeError: create_list_of_files() takes exactly 1 argument (0 given) 

私は間違った方法を使用していますか?

+1

'self.create_list_of_files()' < - 'self'は暗黙の最初の引数です。 –

+0

このエラーが表示された場合、コードを正しくインデントしていないことがわかります(selfを使わずに 'create_list_of_files'を参照することはできませんでした)。 'create_list_of_files'が' __init__'と同じレベルにインデントされていることを確認してください。 – Dunes

+2

[クラス内のPython呼び出し関数]の可能な複製(http://stackoverflow.com/questions/5615648/python-call-function-within-class) –

答えて

1

あなたが方法はあなたが合格されていません

t = self.create_list_of_files() 
0

あなたは次のようにcreate_list_of_filesを呼び出す必要があります: self.create_list_of_files()

0

を探している「1つの引数」である方法オフselfを呼び出す必要がありますクラスへの任意の変数。あなたのinitメソッドでは、コードが1つの変数files_to_copyをとります。正しい情報を格納している変数を渡す必要があります。例:

class Copy(object): 
    def __init__(self, files_to_copy): 
     self.files_to_copy = files_to_copy 

#need to pass something like this: 
a = Copy(the_specific_variable) 
#now, can access the methods in the class 
関連する問題