def create_multiplications(n):
return [lambda f: i*n for i in range(n)]
[12, 12, 12, 12] 应该等于 [0, 4, 8, 12]
[6, 6, 6] 应该等于 [0, 3, 6]
def create_multiplications(n):
return [lambda f: i*n for i in range(n)]
[12, 12, 12, 12] 应该等于 [0, 4, 8, 12]
[6, 6, 6] 应该等于 [0, 3, 6]
代码中的所有 lambda 共享同一个变量
i
。习惯于创建闭包来隐藏上下文中的每个 lambda:如果你喜欢 lambda,那么你可以这样做。代码很难阅读,但它是一样的: