Python 使用types.FunctionType和闭包选项
我正在探索通过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 =
帮助(类型.函数类型)
:
函数(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)()