Python中的闭包

摘要

学过JavaScript的人多少应该都对闭包有点了解。不同于JavaScript,Python中也有闭包。

关于Python中闭包的定义:

在函数内部定义的函数,称为内部函数;内部函数调用了外部函数的局部变量,即使内部函数返回了,还是可以使用局部变量,通常闭包函数的内层函数都要被返回给外部函数,闭包函数的外部函数可以在任何地方被调用,而不再受函数定义时层级的限制。

学过JavaScript的人多少应该都对闭包有点了解。不同于JavaScript,Python中也有闭包。

Python中闭包的定义

在函数内部定义的函数,称为内部函数;内部函数调用了外部函数的局部变量,即使内部函数返回了,还是可以使用局部变量,通常闭包函数的内层函数都要被返回给外部函数,闭包函数的外部函数可以在任何地方被调用,而不再受函数定义时层级的限制。

Python中闭包的作用

1、闭包函数自带函数作用域;

正常意义上的函数,在函数执行过程中查找变量的顺序是一层一层向外找,符合LEGB(Local->Enclose->Global->Built in)法则的,但是对闭包函数来说,查找变量只会找内部函数外面的那一层,因为闭包函数本身就自带一层作用域。

2、延迟计算(也叫惰性计算);

3、可以让让一个函数始终保持一种状态。

shaw

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: