Boj*_*vic 6 python lambda reference
考虑这个例子
def dump(value):
print value
items = []
for i in range(0, 2):
items.append(lambda: dump(i))
for item in items:
item()
Run Code Online (Sandbox Code Playgroud)
输出:
1
1
Run Code Online (Sandbox Code Playgroud)
我怎样才能得到:
0
1
Run Code Online (Sandbox Code Playgroud)
您可以在lambda上使用带有默认值的参数:
for i in range(0, 2):
items.append(lambda i=i: dump(i))
Run Code Online (Sandbox Code Playgroud)
这是有效的,因为默认值是在定义函数时计算的,而不是在调用函数时计算的.