我明白了什么是lambda函数在Python,但我找不到什么是“拉姆达约束力”通过搜索Python文档的含义。 链接阅读有关这将是巨大的。 一个平凡的解释例子会更好。 谢谢。
Answer 1:
首先,一般的定义:
当执行一个程序或函数声明,形式参数的当前值保存(在堆栈)和语句的范围内,就必然要在通话所做的实际参数的值。 当语句退出,这些正式参数的原始值恢复。 此协议是完全递归。 如果一个语句的身体内,采取某些措施,导致正式参数再次束缚,以新的价值观,拉姆达结合方案,保证这都在有条不紊地发生。
现在,有一个优秀的在这里讨论Python的例子 :
” ......只有一个结合x
:做x = 7
只改变了先前存在的结合这就是为什么值。
def foo(x):
a = lambda: x
x = 7
b = lambda: x
return a,b
返回两个功能,这两个返回7; 如果以后出现了一个新的绑定x = 7
,函数将返回不同的值[假设你不调用(7),当然FOO。 还假设nested_scopes] ......”
Answer 2:
我从来没有听说过这个词,但一个可能的解释是“默认参数”黑客用来将值直接分配给拉姆达的参数。 使用斯瓦特的例子:
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
Answer 3:
当你看到这句话用?
在Python“结合”通常是指由一个变量名最终通过分配或参数传递或一些其他装置,例如指向特定对象,是否处理:
a = dict(foo="bar", zip="zap", zig="zag") # binds a to a newly-created dict object
b = a # binds b to that same dictionary
def crunch(param):
print param
crunch(a) # binds the parameter "param" in the function crunch to that same dict again
所以我猜想,“拉姆达约束力”是指一个lambda函数绑定到一个变量名,或者也许它命名的参数绑定到特定的对象的过程? 还有的语言参考绑定一个很好的解释,在http://docs.python.org/ref/naming.html
文章来源: What is “lambda binding” in Python?