需要注意以下两类代码的功能
funcs = [lambda x: x+n for n in range(5)]
for f in funcs:
print(f(0))
结果是4,4,4,4,4
funcs = [lambda x,n=n: x+n for n in range(5)]
for f in funcs:
print(f(0))
结果是0,1,2,3,4
原因在于lambda表达式中的x是一个自由变量, 在运行时绑定值,而不是定义时
就绑定,这跟函数的默认值参数定义是不同的