函数将另一个函数作为参数,并在其体内调用它两次

时间:2018-05-30 11:35:59

标签: python-3.x function

def apply_twice(func, arg):
   return func(func(arg))

def add_five(x):
   return x + 5

print(apply_twice(add_five, 10))

我无法弄清楚输出是如何/为什么是20 !!

对我来说,上面代码的流程是这样的:

def apply_twice(func, arg)    ==> def apply_twice(add_five, 10)

return func(func(arg))    ==> return add_five(add_five(10)) ==> return add_five(10 + 5) ==> return (20 + 5)

1 个答案:

答案 0 :(得分:0)

为什么不是20?

10 + 5 = 15 15 + 5 = 20

最后一步应该返回15 + 5