+ 11

объясните пожалуйста последовательно что здесь происходит?

def apply_twice(func, arg): return func(func(arg)) def add_five(x): return x + 5 print(apply_twice(add_five, 10)) результат:20 эх,не хватает русского комьюнити в приложении(

31st Aug 2016, 7:51 PM
Yaroslav Syncha
Yaroslav Syncha - avatar
2 Answers
+ 11
Вот недавно поставил прогу, до функций ещё не дошёл, но тут все очевидно: передали в функцию параметр который ссылается на другую функцию, которая добавляет 5 к значению аргумента. В итоге получилось что вызвали функцию дважды и она из 10 сделала вначале 15, потом 20
31st Aug 2016, 8:02 PM
MIKALAI
+ 2
print вызывает функцию APPLY_twice эта функция вызывает функцию add_five а у неё в качестве аргумента она сама значит она выполниться один раз вернет значение X и со значением Х выполниться ещё раз вот и все
16th Nov 2016, 8:51 PM
Danila Smolyakov
Danila Smolyakov - avatar