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

返回函数问题

def calc_prod(lst):

    def lazy_prod():

        def f(x, y):

            return x * y

        return reduce(f, lst, 1)

    return lazy_prod

f = calc_prod([1, 2, 3, 4])

print f()

 这程序中实际执行的就是调用f(),接着顺序执行到return reduce之后计算出来累乘,同时作为返回值返回  calc_prod和lazy_prod作用是什么???

正在回答

2 回答

嗯,结果是相同的, 但是calc_prod(lst)是返回了 一个指向函数lazy_pod的变量,而 print f() 也就相当于是调用了lazy_pod() 函数, 从而返回了reduce()

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

实际上述函数变成

def f(x, y):

    return x * y

print reduce(f, [1, 2, 3, 4])

结果是相同的,如果说calc_prod(lst)是调用获得list,那lazy prod的什么作用?难不成是因为calc prod无返回值???



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

胡说鱼

‘延迟’的效果
2017-08-21 回复 有任何疑惑可以回复我~

举报

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

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

进入课程

返回函数问题

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号