python返回函数学习笔记

python返回函数

python中的高级函数除了可以接受函数作为参数,还可以把函数作为结果返回;
例如:一个求和函数
def sums(*args):
sum1 = 0
for i in args:
sum1 = sum1 + i
return sum1

这个函数用于计算传入的list或tuple元素之和,如果我们不需要马上得到计算结果,而是在需要的时候得到计算结果呢:
所以,我们可以不返回计算的和,而是返回计算的函数:
def lazy_sum(*args):
def sums():
sum1 = 0
for i in args:
sum1 = sum1 + i
return sum1
return sums

这里,我们调用lazy_sum函数时传入args参数,可以被其内部函数sums调用,同时返回一个包含有计算结果的函数sums
执行函数
返回结果
此时调用f(),才会返回该函数计算的值!!

调用f(0
调用结果
我们称呼sums函数为内部函数,称呼lazy_sum函数为外部函数,内部函数可以调用外部函数的参数和局部变量;当lazy_sum返回函数sums时,sums所使用的相关参数和变量都保存在返回的函数中,我们称之为“闭包(closure)”;
使用这种返回函数方式生成的函数,每一次都是不一样的;
在这里插入图片描述
在这里插入图片描述
未完,待补充

猜你喜欢

转载自blog.csdn.net/weixin_43934160/article/details/88647227