python lambda函数参数传递之坑

看这个例子:

def my_print(val):
    print val

lst = [1, 2, 3]
func_list = []

for x in lst:
    func_list.append(lambda: my_print(x))

for func in func_list:
    func()
"""
3
3
3
"""
    
func_list = []
for x in lst:
    func_list.append(lambda aaa=x: my_print(aaa))

for func in func_list:
    func()
"""
1
2
3
"""

lambda出现时是函数声明,:右侧并不会管参数到底是哪个,所以要在左侧捕捉后传入。

https://blog.csdn.net/u010949971/article/details/70045537

原文地址:https://www.cnblogs.com/dylanchu/p/15501816.html