0

Помогите понять!!! Объясните код , пошагово

def apply_twice(func, arg): return func(func(arg)) def add_five(x): return x + 5 print(apply_twice(add_five, 10))

2nd Apr 2018, 10:11 AM
Дмитрий Поздняков
Дмитрий Поздняков - avatar
2 Answers
+ 16
print(apply_twice(add_five,10)) 👆 let me expand apply_twice make add_five func work 2 times on argument 10 passed to it... In apply_twice(add_five,10) add_five is func and 10 is arg so it becomes print(add_five(add_five(10))) 👇 print(add_five(10+5)) 👇 print(10+5+5) 👇 output 20
2nd Apr 2018, 10:18 AM
🌛DT🌜
🌛DT🌜 - avatar
+ 6
Метод apply_twice принимает два параметра - func и arg. Потом он использует func с аргументом, а результат действует как аргумент для ещё одного призвания функции. И так: add_five(add_five(10)) значит add_five(10+5), значит add_five(15), значит 15+5, значит 20.
2nd Apr 2018, 10:20 AM
Kuba Siekierzyński
Kuba Siekierzyński - avatar