小编use*_*676的帖子

局部范围,超出了封闭范围

为什么lambda函数获取值列表i = 4.在调用lambda期间,封闭范围不存在.函数f已完成工作并返回控制(变量i不存在).

def f():
    L = []
    for i in range(5): 
        L.append(lambda x: i ** x) 
    return L
L = f()
L[0]



def f1(N):
    def f2(X):
        return X**N
    return f2
f=f1(2) 
f (3)  
 9
g = f1(3)
g(3)
27
f(3)
9
Run Code Online (Sandbox Code Playgroud)

python closures python-3.x

1
推荐指数
1
解决办法
197
查看次数

标签 统计

closures ×1

python ×1

python-3.x ×1