web-dev-qa-db-fra.com

Comment passer une variable par son nom à un Thread en Python?

Disons que j'ai une fonction qui ressemble à:

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

Maintenant, je veux créer un thread en utilisant cette fonction et en lui donnant arg2 mais pas arg3. J'essaie de le faire comme ci-dessous:

#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()

Le code ci-dessus me donne une erreur de syntaxe. Comment puis-je le corriger pour pouvoir passer un argument au thread en tant qu'arg2?

29
Dylan

Utilisez le paramètre kwargs :

threading.Thread(target=self._thread_function, args=(arg1,),
                 kwargs={'arg2':arg2}, name='thread_function').start()
50
unutbu