首页 > 解决方案 > python:关于 lambda 和闭包

问题描述

我明白那个:

a=[lambda :k for k in [1,2,3]]
[e() for e in a]

返回[3, 3, 3],因为它k在运行时采用 的值,而 的最后一个值k3。但是,我不明白为什么,如果我这样做:

k=50
[e() for e in a]

我还是明白了[3, 3, 3]。为什么这个?我更新了kwith的值50,为什么e()函数仍然读取旧k值?

标签: pythonpython-3.xlambdaclosures

解决方案


推荐阅读