返回函数

返回函数

函数作为返回值:

高阶函数除了可以接受函数作为参数外,还可以把函数作为结果值返回。

比如求和函数:

def func(*args):

def sum():

n=0

for i in args:

n = n+i

return n

return sum

调用func(),返回的是sum这个函数对象,

分别用func()传两次相同的参数:

s1=func(1,2,3,4,5)

s2=func(1,2,3,4,5)

s1=f2>>>False

说明虽然传了两次相同的参数,返回的函数对象并不一样

想要获得最终的结果,必须调用返回的函数对象,

sum()>>>15

闭包(重点):

上例中,我们在函数func中又定义了函数sum,并且,内部函数sum可以引用外部函数func的参数和局部变量,当func返回函数sum时,相关参数和变量都保存在返回的函数中,这种称为“闭包(Closure)”的程序结构拥有极大的威力。(内部的可以引用外部的参数和变量,外部的不能引用内部的参数和变量)

s1()和s2()的调用结果互不影响。

注意:返回的函数并没有立刻执行,而是直到调用了s()才执行。

返回闭包时牢记的一点就是:返回函数不要引用任何循环变量,或者后续会发生变化的变量

小结

一个函数可以返回一个计算结果,也可以返回一个函数。

返回一个函数时,牢记该函数并未执行,返回函数中不要引用任何可能会变化的变量。

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

相关阅读更多精彩内容

友情链接更多精彩内容