python的LEGB原则

python中也存在闭包的概念,但是python的闭包不好的问题在于,默认是只读的,好在python3.0的版本支持了关键字nonlocal。看如下例子

def outer():

var = 0

def inner():

var += 1

yield var

return inner

这种写法会出现域错误的提示,是因为var+=1而 引起的,如果不是赋值,只是访问的话是没有问题的。


你可能感兴趣的:(python)