函数除了作为代码块,作为接收参数,还可以把函数作为结果返回。 例子:
通常
def calc_sum(*args):
ax = 0
for n in args:
ax = ax + n
return ax
如果,不需要立即求和,而是在后面根据需要在计算,那就可以不返回求和结果,而是这个函数:
def lazy_sum(*args):
def sum():
ax = 0
for n in args:
ax = ax + n
return ax
return sum
调用lazy_sum()
时,返回的并不是求和结果,而是求和函数:
> > > f = lazy_sum(1, 3, 5, 7, 9)
> > > f
< function lazy_sum.< locals >.sum at 0x101c6ed90 >
调用函数f时,才真正计算求和的结果:
>> > f()
25
每次的调用都会返回一个新的函数,即使是传入相同的参数。
全部0条评论
快来发表一下你的评论吧 !