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

有两段代码不知道哪里不一样,报错为int' object is not callable

def b(list1):

    sum=1

    for i in list1:

        sum=sum*i

    return sum

def calc_prod(lst):

    def fun():

        return b(lst)

    return fun()

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

print f()


正在回答

3 回答

return fun() ==> return fun

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

代码好难理解,

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

楼上说得对。

按照你写的,calc_prod函数执行完之后返回了fun(),也就是f=fun(),那最后一行的f()就代表fun()(),就错了。

要想最后一行的f()可以当做fun()被调用,f就应该等于fun,所以return fun()改成return fun就可以啦。

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

举报

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

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

进入课程

有两段代码不知道哪里不一样,报错为int' object is not callable

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