奇怪的未知lambda语法

时间:2017-04-09 13:42:09

标签: python lambda syntax

我知道这是做什么的(让k引用当时的实际值而不是最后一个值)但是这个语法叫什么? 来自https://stackoverflow.com/a/215326/2375119

funcs = [] 
for k in range(10):
     funcs.append(lambda k = k: k)

>>> funcs[7]()
7 # not 9

1 个答案:

答案 0 :(得分:6)

语法没有特别的名称。它是将闭包绑定到其论点的方法之一; Python closures are late binding

该语法是一种通过在创建lambda时将其作为默认参数传递将当前iteratee值绑定到每个lambda的方法。由于默认参数在创建函数时进行评估,因此该值会粘贴到函数中。