How to pass a variable by name to a Thread in Python?

喜夏-厌秋 提交于 2021-02-05 14:51:47

问题


Say that I have a function that looks like:

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

Now I want to create a thread using that function, and giving it arg2 but not arg3. I'm trying to this as below:

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

The above code gives me a syntax error. How do I fix it so that I can pass an argument to the thread as arg2?


回答1:


Use the kwargs parameter:

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


来源:https://stackoverflow.com/questions/6904487/how-to-pass-a-variable-by-name-to-a-thread-in-python

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!