我正在尝试做这样的事情:
import threading
def func1(a,b):
def func2():
t=threading.Thread(target=func3)
return t
return func2
func2=func1(a,b)
func2()
我有一个限制(我使用的语言是具有一些受限函数的 python)不使用线程函数的 args 参数,而是我想将 a 和 b 作为参数传递给 func3。我如何使用闭包来做到这一点?
请您参考如下方法:
您可以使用 lambda:
t=threading.Thread(target=lambda: func3(a,b))
a 和 b 的值将保存在闭包中,即使在 func1 退出后也是如此。
您可以创建命名函数来代替 lambda:
def thread_func():
func3(a,b)
t = threading.Thread(target=thread_func)
