为了账号安全,请及时绑定邮箱和手机立即绑定

想请教一个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吗?说“延迟计算”能够节省内存,但是即便只返回函数,对参量也进行了保存,那是怎么节省内存的?只是节省了运算结果占用的内存吗


正在回答

2 回答

嗯嗯,我看到有人说,lazy_sum是一个指向该函数内存的指针。这样一来就都说的通啦

0 回复 有任何疑惑可以回复我~

因为lazy_sum并不是lazy_sum(),lazy_sum这时应该是一个函数,是 calc_sum(lst)的变量,返回它,就相当于返回了这个函数而不是函数值,其他嘀我也不知道了,刚学,说说自己的理解。如果说错了,还请不要见怪

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
python进阶
  • 参与学习       255665    人
  • 解答问题       2949    个

学习函数式、模块和面向对象编程,掌握Python高级程序设计

进入课程

想请教一个python返回函数的问题:

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信