“延迟计算”怎么理解?
但是,如果返回一个函数,就可以“延迟计算”:
def calc_sum(lst): def lazy_sum(): return sum(lst) return lazy_sum
# 调用calc_sum()并没有计算出结果,而是返回函数: 疑问:这里说的调用calc_sum(),体现在哪里?
>>> f = calc_sum([1, 2, 3, 4]) 疑问:这一步是什么意思 >>> f <function lazy_sum at 0x1037bfaa0>
# 对返回的函数进行调用时,才计算出结果: 疑问:为什么最后返回的是calc_sum,不是lazy_sum吗
>>> f() 10