Python 使用types.FunctionType和闭包选项

Python 使用types.FunctionType和闭包选项,python,Python,我正在探索通过FunctionType动态创建函数对象(出于学习目的),但不知道如何使用闭包参数 从帮助(类型.函数类型): 函数(code,globals[,name[,argdefs[,closure]]) 可选的闭包元组为自由变量提供绑定 一个简单的表达是有效的: def foo(): code = compile("print(3 + 2)", filename='FunctionType_test', mode='eval') new_func =

我正在探索通过FunctionType动态创建函数对象(出于学习目的),但不知道如何使用闭包参数

帮助(类型.函数类型)

函数(code,globals[,name[,argdefs[,closure]])

可选的闭包元组为自由变量提供绑定

一个简单的表达是有效的:

def foo():
    code = compile("print(3 + 2)", filename='FunctionType_test', mode='eval')
    new_func = types.FunctionType(code, globals(), "generated_function")
    return new_func

foo()()
如何将外部作用域中的变量绑定到新函数对象

def foo(foo_var):
    code = compile("print(foo_var + 2)", filename='FunctionType_test', mode='eval')
    new_func = types.FunctionType(code, globals(), "generated_function")
    return new_func

foo(3)()
我希望实现相同的行为,但通过FunctionType

def foo(foo_var):
    def bar():
        print(foo_var + 2)

    return bar

foo(3)()