课程
/后端开发
/Python
/python进阶
def calc_prod(lst):
def cj(x,y):
return x*y
return reduce(cj,lst)
f = calc_prod([1, 2, 3, 4])
print f()
2017-07-28
源自:python进阶 2-8
正在回答
因为f()表示运行f这个函数,而在你的代码中f不是一个函数,只是一个普通变量,所以f()自然就不对,而该变量接受了calc_prod([1, 2, 3, 4])的值,所以print f输出的实际上就是calc_prod([1, 2, 3, 4])的运行结果
因为你
代码最后一行,return reduce(cj,lst),也就是说f = reduce(),所以后面输出print f相当于print reduce().如果你加上括号,就变成这样,print reduce()()
因为返回的cal_prod返回的是一个函数, 如果直接返回列表就对了
举报
学习函数式、模块和面向对象编程,掌握Python高级程序设计
购课补贴联系客服咨询优惠详情
慕课网APP您的移动学习伙伴
扫描二维码关注慕课网微信公众号