私はクラスを定義しました。クラスは現在、2つの引数selfとsavepathを取ります。このクラスのメソッドは2つの引数selfをとります。そのメソッドの中で、私は再び2つの引数local_hashとfilenameをとる関数を呼び出しますが、このメソッドを呼び出すと、私は以下のエラーを受け取ります。私はそれが自己主張で何かを持っていると仮定しますが、私はどこで、なぜそれを理解できません。そして記録のために、put_nowait()はデフォルトモジュールのメソッドです。私が使用しているすべての関連するデフォルトモジュールのコードを投稿する必要があるとは思わないでしょう。未知の引数を受け取るクラスのメソッド
方法:
def cache_files(self, path):
self.folder_path = path
self.md5_queue = Queue.Queue()
accepted_file_types = ['.jpg', '.png', '.gif']
self.hash_directory = os.walk(self.folder_path, topdown=True)
if self.folder_path != None:
for root, subfolders, images in self.hash_directory:
for filename in images:
try:
if filename[-4:] in accepted_file_types:
self.local_hash = hash_sum(os.path.join(root, filename))
self.md5_queue.put_nowait(filename, self.local_hash)
except IOError:
continue
print 'Directory has finished caching, exiting...'
return self.md5_queue
デフラン():
def run(self):
# references pickle file if available
md5_path = os.path.join(os.path.dirname(__file__), 'md5.pickle')
try:
self.md5_dict = md5_unpickler(md5_path)
except IOError:
pass
if self.hash == True:
self.cache_files(self.savepath)
else:
self.build_queue()
エラー:
Traceback (most recent call last):
File "C:\Users\Cirno\Dropbox\CirnoCrawler\crawler.py", line 98, in run
self.cache_files(self.savepath)
File "C:\Users\Cirno\Dropbox\CirnoCrawler\crawler.py", line 84, in cache_files
self.md5_queue.put_nowait(filename, self.local_hash)
TypeError: put_nowait() takes exactly 2 arguments (3 given)
'def put_nowait()'はどのようなクラスですか? –
'put_nowait()'はQueueモジュールのメソッドです。 – Cirno
私の答えが見つかりました。 put_nowait()は2つの引数 'put_nowait(self、(tuple、ここ))'を期待しています。 'put_nowait(タプル、ここ)) 'ではありません。 – Cirno