python学习笔记-tip30(返回函数)

将函数作为返回值返回的函数
是不是比较拗口
明白意思就好了

那么这是什么意思呢?为什么会出现「返回函数」呢?

这个返回函数的使用场景是,我们不急于通过某个函数得到某种结果,而是在定义好这个「返回函数」后,在后文中才用到,那么这个情况下就需要用到返回函数。

那么怎么做呢?

其实也很简单,就是我们定义一个函数,在函数内部再定义,或者生成一个函数,然后将这个内部的函数返回即可。

有没有示例?


请看

    #返回求和函数,这次用下可变参数
    def fun(*args):
        #定义函数
        def getSum():
              result=0
              for i  in args:
                  result=result+i
              return result
         return getSum

可见,我们在fun函数内部,定义了getSum函数,getSum函数需要依赖fun函数的参数,但是我们调用fun函数是,不能直接拿到sum函数中的运算结果,需要再调用一下getSum函数才可以
所以,我们如果想得到最后的和,可以这么调用

         f=fun([1,2,3,4,5])
         f()

见效果图:


需要注意的是,当我们调用外层函数时,调用n次,返回的函数也不是同一个函数,而是一个新的函数,即使传入的参数是一致的,返回的函数仍是新的函数

引入新的概念--闭包

在上面例子中,我们的fun函数内部定义了内部函数,而内部函数引用了外部函数的参数和局部变量,当外层函数返回函数时,相关变量和参数都保存在返回的函数中,这种程序结构称为“闭包”

需要注意的是:返回函数不要引入任何循环变量,或者后续会发生变化的变量,否则结果可能跟你预期的有偏差

后期补示例

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 第5章 函数和函数式编程 5.1 引言函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。函数...
    VIVAFT阅读 4,565评论 0 5
  • 这是16年5月份编辑的一份比较杂乱适合自己观看的学习记录文档,今天18年5月份再次想写文章,发现简书还为我保存起的...
    Jenaral阅读 8,040评论 2 9
  • 那是个有趣的一年。 喜欢下厨的我本打算满足一下好奇心,去专修一门中西式面点及烘焙课,可是阴差阳错的却学了个中医按摩...
    珊珊得久阅读 2,695评论 0 1
  • 不同风格的LOGO设计可以体现出不同的行业定位和品牌风格,下面整理了12种LOGO设计风格,希望大家可以从中获得一...
    93091cdf8ebb阅读 6,466评论 0 4

友情链接更多精彩内容