【发布时间】:2016-05-16 15:15:51
【问题描述】:
threading.Thread(target=...) 的文档指出
target是由 run() 方法调用的可调用对象。 默认为 None,表示不调用任何内容。
我通常是这样使用的:
import threading
def worker():
a = 3
print("bonjour {a}".format(a=a))
threading.Thread(target=worker).start()
有没有办法将target 中的函数元素链接起来,这样就不需要定义新的元素了? 类似(显然是伪代码)
threading.Thread(target=(a=3;print("bonjour {a}".format(a=a))).start()
我在Thread 调用中有一堆非常短的调用,并且希望避免函数定义的乘法。
【问题讨论】:
-
你有什么反对定义函数的?
-
没什么,这就是我今天的做法。不过,在一种情况下,我有 10 个不同的两个衬里(所以我不能使用 lambda,根据 @ForceBru 的回答)并且代码会更加紧凑和有条理,没有它们浮动。
-
如果你定义一个函数作为线程的目标,你的代码更容易测试(你有测试,对吧?)。
标签: python multithreading