首页 > 编程语言 >极客编程python入门-返回函数

极客编程python入门-返回函数

时间:2022-12-09 14:33:59浏览次数:41  
标签:返回 lazy 极客 函数 python sum 编程 ax 变量


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


def lazy_sum(*args):
def sum():
ax = 0
for n in args:
ax = ax + n
return ax
return sum


>>> f = lazy_sum(1, 3, 5, 7, 9)
>>> f
<function lazy_sum.<locals>.sum at 0x101c6ed90>


极客编程python入门-返回函数_闭包函数


闭包


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


>>> f1 = lazy_sum(1, 3, 5, 7, 9)
>>> f2 = lazy_sum(1, 3, 5, 7, 9)
>>> f1==f2
False

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



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


极客编程python入门-返回函数_闭包函数_02


小结


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


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

标签:返回,lazy,极客,函数,python,sum,编程,ax,变量
From: https://blog.51cto.com/apple0/5925176

相关文章