+ 4

Please, could somebody explain this code step by step?

Please, could somebody explain this code step by step? This really seems impossible to understand to me. Although I have no problem with function with 2 arguments, seems impossible understand function with 3 argunemts. def add(x,y): return (x+y) >>>>> this code il clear and simple to understand, return first value added to second one. def do_twice(func,x,y): return func(func(x,y),func(x,y)) >>>>> this is arabic! >>>>> func(x,y) works like add(x,y)? why? >>>>> which is the real value of func? why if I remove it after "return" command , outputs are 15,15? >>>>> which is the meaning of comma between first and secondo func(x,y)? a=5 b=10 print (do_twice(add,a,b)) Please Help!

7th Apr 2016, 9:08 AM
Marco Carone
Marco Carone - avatar
2 Answers
+ 9
def add(x, y): return x + y #add(x,y) => add(a, b) => add(5,10) #return 5 + 10 = 15 def do_twice(func, x, y): return func(func(x, y), func(x, y)) #do_twice (func, x, y) => #do_twice (add, a, b) => #return add(add(a,b), add(a, b))=> #return add(add(5,10), add(5,10)) #return add(15, 15) #return 15 + 15 = 30 """ the print(do_twice(add, a, b)) changes func to add, x to a,and y to b. At this point do_twice returns the first function add(x,y) twice, then finally solves a third add(x,y) by adding 15 + 15. """ a = 5 b = 10 print(do_twice(add, a, b))
12th Apr 2016, 1:08 AM
EpicGamer12
EpicGamer12 - avatar
- 1
:3
22nd Jun 2016, 9:20 PM
Glenn.q