闭包不是指 变量 ,而是 范围
。由于
i范围内的最后一个值为‘3’,因此所有三个闭包均返回相同的值。要“锁定”变量的当前值,只需为其创建一个新的作用域:
def get() : return [ (lambda x: lambda: x)(i) for i in [ 1, 2, 3 ] ]for f in get() : print( f() )
欢迎分享,转载请注明来源:内存溢出
闭包不是指 变量 ,而是 范围
。由于
i范围内的最后一个值为‘3’,因此所有三个闭包均返回相同的值。要“锁定”变量的当前值,只需为其创建一个新的作用域:
def get() : return [ (lambda x: lambda: x)(i) for i in [ 1, 2, 3 ] ]for f in get() : print( f() )
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)