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

为什么我的会报错

我有2个疑问:

  1. 为什么会报错

  2. f = calc_prod([1, 2, 3, 4])  这里已经带参数了,那就是一个固定的值了?

def calc_prod(lst):

    def abc():

        sum=1

        for x in lst:

            sum=sum*x

        return sum

    return abc

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

print f()


正在回答

3 回答

def calc_prod(lst):

    def abc():
        sum=1
        for x in lst:
            sum=sum*x
        return sum
    return abc
f = calc_prod([1, 2, 3, 4])
print f()

代码中abc(lst)能接收参数,那在return abc结尾时就应该为函数传入一个参数,去掉lst不会报错是因为lst本来就是calc_prod传入的参数,在整个函数内本来就是可以调用的。

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

def calc_prod(lst):
    def abc(lst):
        sum=1
        for x in lst:
            sum=sum*x
        return sum
    return abc
f = calc_prod([1, 2, 3, 4])
print f()
不好意思,是这段代码

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

慕码人442597

这个第一段返回函数abc,不应该加上lst参数
2018-09-21 回复 有任何疑惑可以回复我~

这个是对的,没错

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

举报

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

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

进入课程

为什么我的会报错

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