python 闭包closure

当内部函数对外部函数的变量(非全局变量)进行了引用,则内部函数被称之为闭包

举个栗子:

python 闭包closure_第1张图片
闭包例子

调用:

c = outter(5) # 返回 inner这个函数名,即c = inner

c(6) # 即inner(6),结果是30

常见错误:

python 闭包closure_第2张图片
常见错误1

解决办法:

添加nonlocal关键字(限python3)

python 闭包closure_第3张图片
限python3

python2的解决办法:

将a定义成列表[5]

python 闭包closure_第4张图片
python2

感谢小甲鱼的教程,进一步了解了闭包。

你可能感兴趣的:(python 闭包closure)