如何向线程传递参数?

39 投票
2 回答
70911 浏览
提问于 2025-04-16 22:41

我有一个叫test()的函数,如下所示:

def test(arg1, arg2=None, arg3=None):

现在,我想用test()来创建一个线程,并且只给它arg1arg2这两个参数,而不传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()

撰写回答