美文网首页python小白联盟
一篇短文理解闭包

一篇短文理解闭包

作者: 雨路浅歌 | 来源:发表于2018-07-21 10:30 被阅读6次

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

闭包的定义

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

语法结构

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

应用场景

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

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

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

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

出个题

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

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

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

python小白联盟

相关文章

  • 一篇短文理解闭包

    今天和大家一起学习新的内容——闭包。 闭包的定义 ​ 现有两个函数,一个是外部函数,另外一个是外部函数,当内部函数...

  • js作用域链

    之前写过一篇JavaScript 闭包究竟是什么的文章理解闭包,觉得写得很清晰,可以简单理解闭包产生原因,但看评论...

  • Gradle开发-Groovy闭包

    # 闭包 闭包的基础知识 闭包的使用 闭包 this,owner,delegate 的理解 总结 ## 闭包的基础...

  • Swift5 闭包及其应用

    关于如何理解闭包 学习闭包的第一个难点就是理解闭包,可能很多人用了很久的闭包都还不太清楚闭包到底是什么,我这里提供...

  • 【js基础修炼之路】— 深入浅出理解闭包

    之前对于闭包的理解只是很肤浅的,只是浮于表面,这次深究了一下闭包,下面是我对闭包的理解。 什么是闭包? 引用高程里...

  • 解释JavaScript中的闭包

    去年我写了一篇“closures的简介”,它的目的是帮助大家理解‘什么是闭包,闭包是如何工作的’。现在我尝试从另外...

  • 闭包升级版

    看了我的上一篇文章应该能对闭包有了个深刻的理解,下面我就讲一下升级版的闭包,是不是很期待呀。 闭包和this的结合...

  • 闭包理解

    这次我发现了个奇怪的问题,高程经典的闭包陷阱,竟然是把一个未执行的函数赋值给了一个数组项,当年的我太年轻,竟然没看...

  • 理解闭包

    什么是「闭包」。 「闭包」的作用是什么。在一个立即执行函数当中: 首先,假设以上几行代码运行在立即执行函数当中,那...

  • 理解闭包

    什么是闭包?闭包是什么时候创建的?能不能看到闭包?从这三点出发学习。 在维基百科中的闭包:词法闭包的简称。是引用了...

网友评论

    本文标题:一篇短文理解闭包

    本文链接:https://www.haomeiwen.com/subject/ebthmftx.html