Ano*_*ous 11 python lambda binding
我理解Python中的lambda函数是什么,但是通过搜索Python文档我找不到"lambda binding"的含义.阅读它的链接会很棒.一个简单的解释例子会更好.谢谢.
Swa*_*ati 14
一,一般定义:
当执行程序或函数语句时,形式参数的当前值被保存(在堆栈上)并且在语句的范围内,它们被绑定到调用中的实际参数的值.退出语句时,将恢复这些正式参数的原始值.该协议是完全递归的.如果在语句的主体内部,某些事情导致形式参数再次绑定到新值,则lambda绑定方案保证这将全部以有序的方式发生.
"...只有一个绑定x:x = 7只是改变预先存在的绑定中的值.这就是原因
def foo(x):
a = lambda: x
x = 7
b = lambda: x
return a,b
Run Code Online (Sandbox Code Playgroud)
返回两个都返回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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4815 次 |
| 最近记录: |