想请教一个python返回函数的问题:
想请教一个python返回函数的问题:
def calc_sum(lst):
def lazy_sum():
return sum(lst)
return lazy_sum
下面是调用:
下面代码并没有对函数进行执行计算出结果,而是返回函数。
>>> f = calc_sum([1, 2, 3, 4])
>>> f
<function lazy_sum at 0x1037bfaa0>
为什么它能直接返回lazy_sum而不直接计算结果呢?它跳过了中间的语句直接执行return吗?说“延迟计算”能够节省内存,但是即便只返回函数,对参量也进行了保存,那是怎么节省内存的?只是节省了运算结果占用的内存吗