我理解Python中的lambda函数是什么,但是通过搜索Python文档我找不到"lambda binding"的含义.阅读它的链接会很棒.一个简单的解释例子会更好.谢谢.
一,一般定义:
当执行程序或函数语句时,形式参数的当前值被保存(在堆栈上)并且在语句的范围内,它们被绑定到调用中的实际参数的值.退出语句时,将恢复这些正式参数的原始值.该协议是完全递归的.如果在语句的主体内部,某些事情导致形式参数再次绑定到新值,则lambda绑定方案保证这将全部以有序的方式发生.
现在,在这里的讨论中有一个很好的python示例:
"...只有一个绑定x
:x = 7
只是改变预先存在的绑定中的值.这就是原因
def foo(x): a = lambda: x x = 7 b = lambda: x return a,b
返回两个都返回7的函数; 如果之后有一个新的绑定x = 7
,那么函数会返回不同的值[假设你当然没有调用foo(7)).还假设是nested_scopes] ...."
我从来没有听说过这个术语,但是一个解释可能是用于将值直接赋值给lambda参数的"默认参数"hack.使用Swati的例子:
def foo(x): a = lambda x=x: x x = 7 b = lambda: x return a,b aa, bb = foo(4) aa() # Prints 4 bb() # Prints 7