课程
/后端开发
/Python
/python进阶
为什么定义返回函数时用了3个定义def,其中“def lazy_prod():”是否可以不要?
2016-07-07
源自:python进阶 2-8
正在回答
在答案的体系下是不行的,因为它后面的代码要求它必须返回一个函数(f = calc_prod([1, 2, 3, 4]) print f() 。) 而第三个定义的函数只是用于计算乘积,为第二个函数所利用,而第一个函数返回第二个函数,所以可以把第二个函数看成一个传导介质。当然看起来很绕,这主要是编者用来给初学者联系而已,当然还有其他简洁的方法,比如匿名函数什么的
不能去掉,不知道为什么,等厉害的人
def calc_prod(lst): def multiple(): m = 1 for x in lst: m = m * x return m return multiplef = calc_prod([1, 2, 3, 4])print f()
举报
学习函数式、模块和面向对象编程,掌握Python高级程序设计