Skip to main content
 首页 » 编程设计

python之在python中的闭包中调用函数

2025年05月04日12itcoder

我正在尝试做这样的事情:

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)