Я только начал с многопоточной, поэтому я думал, что сделать себе небольшой и простой пример:Python многопоточность аргумент ошибки
import time
import threading
def count(who):
count = 1
while count <= 5:
print who + " counted to: " + str(count)
time.sleep(0.1)
count += 1
thread1 = threading.Thread(target=count, args=('i'))
thread1.start()
Который прекрасно работает и печатает следующее:
>>> i counted to: 1
>>> i counted to: 2
>>> i counted to: 3
>>> i counted to: 4
>>> i counted to: 5
странным, однако, когда я хочу, чтобы изменить аргумент к другому, как: "Джон":
thread1 = threading.Thread (TARGET = кол-во, Args = ('джон'))
Надеясь он будет производить:
>>> john counted to: 1
>>> john counted to: 2
>>> john counted to: 3
>>> john counted to: 4
>>> john counted to: 5
Однако procudes ошибку:
Exception in thread Thread-1:
Traceback (most recent call last):
File "/usr/lib/python2.7/threading.py", line 810, in __bootstrap_inner
self.run()
File "/usr/lib/python2.7/threading.py", line 763, in run
self.__target(*self.__args, **self.__kwargs)
TypeError: count() takes exactly 1 argument (4 given)
Я действительно не уверен, что здесь происходит ... Кто-нибудь знает?
О, ладно, я думаю, это имеет смысл. Спасибо за это объяснение! – user5740843