0
這裏是我的一段代碼,我想使用多線程蟒蛇多線程提供了錯誤類型
unipidA = ['list of data IDs with 6 characters each']
import threading;
from time import ctime()
def parse_data('give_data_id'):
< code to parse data from server and
each data ID has unique 6 character string e.g 'Q9NR22', 'Q86WR7' etc>
print 'The data ', data_id, ' has been parsed'
def main():
print 'Data Parsing Started at ', ctime()
threads = []
mylen = range(len(unipidA))
for i in mylen:
print unipidA[i]
t = threading.Thread(target = parse_data ,args=(unipidA[i]))
threads.append(t)
for i in mylen:
threads[i].start()
for i in mylen:
threads[i].join()
print 'all done at:', ctime()
當我運行它爲:
>>> main() <Enter>
它提供了以下錯誤
>>> File "/usr/lib/python2.7/threading.py", line 504, in run
self.__target(*self.__args, **self.__kwargs)
TypeError: parse_data() takes exactly 1 argument (6 given)
有人可以解釋爲代碼是非常原始的多線程,但我仍然無法跟蹤問題。謝謝!
將''give_data_id''傳遞給'parse_data()'是什麼?你的意思是'parse_data(give_data_id):'? – Julio
這是來自unipidA列表的功能將運行如 parse_data(unipidA [i])#我是任何索引 – Ashutosh
是的,但你有你的參數引號。 – Julio