Учитывая документацию Python для Thread.run()
:
Вы можете переопределить этот метод в подклассе. Стандартный метод run() вызывает вызываемый объект, переданный конструктору объектов, в качестве целевого аргумента, если таковой имеется, с последовательными аргументами и аргументами ключевых слов, взятыми из аргументов args и kwargs соответственно.
Я построил следующий код:
class DestinationThread(threading.Thread):
def run(self, name, config):
print 'In thread'
thread = DestinationThread(args = (destination_name, destination_config))
thread.start()
Но когда я выполняю его, я получаю следующую ошибку:
Exception in thread Thread-1:
Traceback (most recent call last):
File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/threading.py", line 522, in __bootstrap_inner
self.run()
TypeError: run() takes exactly 3 arguments (1 given)
Кажется, я упускаю что-то очевидное, но различные примеры, которые я видел, работают с этой методологией. В конечном счете, я пытаюсь просто передать строку и словарь в поток, если конструктор не правильный путь, а вместо этого создать новую функцию для установки значений до запуска потока, я открыт для этого.
Любые предложения о том, как лучше всего добиться этого?