Как передать переменную по имени в поток в Python? - PullRequest
27 голосов
/ 02 августа 2011

Скажите, что у меня есть функция, которая выглядит следующим образом:

def _thread_function(arg1, arg2=None, arg3=None):
    #Random code

Теперь я хочу создать поток, используя эту функцию и присвоив ей arg2, но не arg3. Я пытаюсь это, как показано ниже:

#Note: in this code block I have already set a variable called arg1 and a variable called arg2
threading.Thread(target=self._thread_function, args=(arg1, arg2=arg2), name="thread_function").start()

Приведенный выше код дает мне синтаксическую ошибку. Как это исправить, чтобы я мог передать аргумент в поток как arg2?

1 Ответ

49 голосов
/ 02 августа 2011

Используйте параметр kwargs :

threading.Thread(target=self._thread_function, args=(arg1,),
                 kwargs={'arg2':arg2}, name='thread_function').start()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...