1、可以看到函数log它最终的返回值是一个函数wrapper。在python中,返回函数指:“对于一个函数c,它最后的返回值是一个函数d,那么函数c就是一个返回函数”。返回函数的好处就是当调用c函数时不用立即执行c中的所有逻辑,我们可以看下面的例子:
def lazy_sum(*args): def sum(): ax = 0 for n in args: ax = ax + n return ax return sum
2、函数lazy_sum实现了一个求和的功能,当我们调用lazy_sum时,其返回的不是直接的求和值,而是一个函数sum,
>>> f = lazy_sum(1, 3, 5, 7, 9) >>> f <function lazy_sum.<locals>.sum at 0x101c6ed90>
3、这里f变量其实就是sum函数,所以要求和的值时,调用f才可以。
>>> f() 25
“当有一个函数h,它定义了内部函数g,最后返回了函数g,并且在该过程中g还使用了h函数的局部变量,那么这种程序python中称之为 闭包 ”。根据闭包定义,其实它也是一种返回函数,只不过它的内部函数使用了外部函数的局部变量(入参)。
以上就是python返回函数的作用,希望能对大家有所帮助。
神龙|纯净稳定代理IP免费测试>>>>>>>>天启|企业级代理IP免费测试>>>>>>>>IPIPGO|全球住宅代理IP免费测试