请教一个 Python 问题

2020-12-04 12:31:24 +08:00
 commoccoom
import threading

def f(dicts):
	for key in dicts:
		print (key,dicts[key])
		
dict1 = {'a':'b','c':'d'}

ta = threading.Thread(target=f,kwargs=dict1)

ta.start()

为什么这里的f函数内无法使用for循环呢?

832 次点击
所在节点    问与答
6 条回复
sean10
2020-12-04 12:34:27 +08:00
加个 ta.join()吧,应该是你主进程结束把还没打印的子进程干掉了
sean10
2020-12-04 12:34:36 +08:00
子线程
Sylv
2020-12-04 12:36:40 +08:00
写法 1:
ta = threading.Thread(target=f, args=(dict1,))

写法 2:
ta = threading.Thread(target=f, kwargs={'dicts': dict1})

了解下 args / kwargs / 解包等概念。
commoccoom
2020-12-04 13:03:46 +08:00
@Sylv 可以了,非常感谢啊😁
sean10
2020-12-04 14:18:05 +08:00
翻了下,我刚才说的错了,无关项
commoccoom
2020-12-04 14:23:08 +08:00
@sean10 已经用 3L 的方法解决了啊😁

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/732062

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX