python小白联盟

一篇短文理解闭包

2018-07-21  本文已影响6人  雨路浅歌

今天和大家一起学习新的内容——闭包。

闭包的定义

​ 现有两个函数,一个是外部函数,另外一个是外部函数,当内部函数调用外部函数的变量,并且外部函数将内部函数返回,就形成了一个闭包。

语法结构

注意:这里返回的是内部函数,而不是内部函数的执行结果,即inner不要加上括号。

应用场景

​ 当函数的参数比较多并且要对函数进行多次调用时,闭包就成了一个不错的选择,什么意思呢?比如现在我要定义一个接收多个参数的函数并进行调用,我可能会这样写。

不不不,我怎么可能会这么傻呢?我肯定会使用循环啊

循环确实是可以,但是看起来还是怪怪的,我还是另谋新路,选择闭包来解决吧

嗯,这样看起来就舒服多了。

出个题

最后,留一道题给大家思考一下

讲解(没思考过的童鞋不要偷看哦)

这道题关键的地方就是执行inner函数的时候,i的值并没有分别被赋值为0,1,2,3,4。为了直观地理解这个问题,我们可以这样想,在外部函数执行的时候,内部函数就是一个黑箱子,当外部函数返回内部函数的时候,这个黑箱子才会被打开,而此时i的值显然已经被赋值为4,所以最后的输出结果就是五个4。

python小白联盟
上一篇下一篇

猜你喜欢

热点阅读