一篇短文理解闭包
2018-07-21 本文已影响6人
雨路浅歌
今天和大家一起学习新的内容——闭包。
闭包的定义
现有两个函数,一个是外部函数,另外一个是外部函数,当内部函数调用外部函数的变量,并且外部函数将内部函数返回,就形成了一个闭包。
语法结构
注意:这里返回的是内部函数,而不是内部函数的执行结果,即inner不要加上括号。
应用场景
当函数的参数比较多并且要对函数进行多次调用时,闭包就成了一个不错的选择,什么意思呢?比如现在我要定义一个接收多个参数的函数并进行调用,我可能会这样写。
不不不,我怎么可能会这么傻呢?我肯定会使用循环啊
循环确实是可以,但是看起来还是怪怪的,我还是另谋新路,选择闭包来解决吧
嗯,这样看起来就舒服多了。
出个题
最后,留一道题给大家思考一下
讲解(没思考过的童鞋不要偷看哦)
这道题关键的地方就是执行inner函数的时候,i的值并没有分别被赋值为0,1,2,3,4。为了直观地理解这个问题,我们可以这样想,在外部函数执行的时候,内部函数就是一个黑箱子,当外部函数返回内部函数的时候,这个黑箱子才会被打开,而此时i的值显然已经被赋值为4,所以最后的输出结果就是五个4。
python小白联盟