def create_multipliers():
return list(map(lambda i: lambda x: i*x, range(5)))
print(create_multipliers())
for multiplier in create_multipliers():
print(multiplier(2))
这个的结果是
0
2
4
6
8
【 在 ToSimplicity 的大作中提到: 】
: 1. i是个变量
: 2. i对于lambda来说不是local变量, 它的namespace在create_multipliers()下, 同一次create_multipliers()下的lambda使用的i都是同一个对象
: 可以试试下行里变量的namespace都在哪
: ...................
--
FROM 120.242.251.*