如何向线程传递参数?

发布于 2024-11-27 12:25:53 字数 478 浏览 0 评论 0原文

我有 test() ,如下所示:

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

现在,我尝试使用 test() 创建一个线程,并只给出 arg1arg2 而不是 arg3,如下所示:

threading.Thread(target=test, args=(arg1, arg2=arg2)).start()

但是,我遇到了语法错误。如何解决该错误,以便可以将参数作为 arg2 传递给线程?

I have test() as shown below:

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

Now, I tries to create a thread using test(), and giving it only arg1 and arg2 but not arg3 as shown below:

threading.Thread(target=test, args=(arg1, arg2=arg2)).start()

But, I got a syntax error. How can I solve the error so that I can pass an argument to the thread as arg2?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

煮茶煮酒煮时光 2024-12-04 12:25:53

使用 kwargs 参数

threading.Thread(target=test, args=(arg1,), kwargs={'arg2':arg2}).start()

Use the kwargs parameter:

threading.Thread(target=test, args=(arg1,), kwargs={'arg2':arg2}).start()
在梵高的星空下 2024-12-04 12:25:53

您还可以使用 lambda 来传递参数

threading.Thread(target=lambda: test(arg1, arg2=arg2, arg3=arg3)).start()

you can also use lambda to pass args

threading.Thread(target=lambda: test(arg1, arg2=arg2, arg3=arg3)).start()
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文