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

为什么不能直接sum(fn(*args))

http://img1.sycdn.imooc.com//58ca51650001157504130277.jpg

用fn(*args)可以得到(1,2,3,4,5),用sum(1,2,3,4,5)可以得到15,为什么这两个都成立但sum(fn(1,2,3,4,5))不对?

正在回答

3 回答

fn()只是输出了12345 并没有return(1,2,3,4,5)  sum函数获得的是null

def fn(*args):

    return args


print(sum(fn(1,2,3,4,5)))

这样才行

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

慕粉1450121606 提问者

非常感谢!
2017-03-17 回复 有任何疑惑可以回复我~

语法有问题

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

慕粉1450121606 提问者

具体一点是为什么不可以这样呢
2017-03-16 回复 有任何疑惑可以回复我~

python允许在定义函数的时候,其函数体内又包含另外一个函数的完整定义,这就是我们通常所说的嵌套定义。为什么?因为函数是用def语句定义的,凡是其他语句可以出现的地方,def语句同样可以出现。
像这样定义在其他函数内的函数叫做内部函数,内部函数所在的函数叫做外部函数。当然,我们可以多层嵌套,这样的话,除了最外层和最内层的函数之外,其它函数既是外部函数又是内部函数

def fm(*args):
    print sum(args)
print fm(1,2,3,4,5)


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

慕粉1450121606 提问者

我懂你的代码了 但是不知道这个跟你的文字有什么关系 你的代码并没有嵌套定义函数啊 我主要想知道为什么我那样写是错误的
2017-03-16 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
初识Python
  • 参与学习       758623    人
  • 解答问题       8667    个

学python入门视频教程,让你快速入门并能编写简单的Python程序

进入课程

为什么不能直接sum(fn(*args))

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