如何向线程传递参数?
我有一个叫test()
的函数,如下所示:
def test(arg1, arg2=None, arg3=None):
现在,我想用test()
来创建一个线程,并且只给它arg1
和arg2
这两个参数,而不传arg3
,如下所示:
threading.Thread(target=test, args=(arg1, arg2=arg2)).start()
但是,我遇到了一个语法错误。请问我该如何解决这个错误,以便我可以把参数传给线程作为arg2
呢?
2 个回答
6
你也可以用lambda来传递参数。
threading.Thread(target=lambda: test(arg1, arg2=arg2, arg3=arg3)).start()
80
使用 kwargs 参数:
threading.Thread(target=test, args=(arg1,), kwargs={'arg2':arg2}).start()