Are*_*ski 3 python syntax lambda
我知道这是做什么的(使得k引用实际值而不是最后一个值)但是这个语法叫什么?来自/sf/answers/15072851/
funcs = []
for k in range(10):
funcs.append(lambda k = k: k)
>>> funcs[7]()
7 # not 9
Run Code Online (Sandbox Code Playgroud)
语法没有特别的名称.这是将闭包绑定到其参数的方法之一; Python 闭包是后期绑定.
该语法是一种lambda在创建lambda时将当前iteratee值作为默认参数传递给当前的iteratee值的方法.由于在创建函数时会计算默认参数,因此该值会粘贴到函数中.