Функция принимает в качестве аргумента другую функцию и дважды вызывает ее - PullRequest
0 голосов
/ 30 мая 2018
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 голосов
/ 30 мая 2018

почему не 20?

10 + 5 = 15 15 + 5 = 20

последний шаг должен вернуть 15 + 5

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...