作用域 LEGB:为什么循环变量在函数外还能用
LEGB 查找顺序
Local → Enclosing → Global → Built-in。
x = "global"
def outer():
x = "enclosing"
def inner():
print(x) # enclosing
inner()
延迟绑定
funcs = [lambda: i for i in range(3)]
print([f() for f in funcs]) # [2, 2, 2]
要固定值就写成 lambda i=i: i。