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

答案的疑问

为什么定义返回函数时用了3个定义def,其中“def lazy_prod():”是否可以不要?

正在回答

3 回答

在答案的体系下是不行的,因为它后面的代码要求它必须返回一个函数(f = calc_prod([1, 2, 3, 4])    print f()  。) 而第三个定义的函数只是用于计算乘积,为第二个函数所利用,而第一个函数返回第二个函数,所以可以把第二个函数看成一个传导介质。当然看起来很绕,这主要是编者用来给初学者联系而已,当然还有其他简洁的方法,比如匿名函数什么的

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

不能去掉,不知道为什么,等厉害的人

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

def calc_prod(lst):
    def multiple():
        m = 1
        for x in lst:
            m = m * x
        return m
    return multiple

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



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

举报

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

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

进入课程

答案的疑问

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