お世話になります。
Tatsuyaと申します。
只今"みんなのPython 第4版"という本を読みながら
プログラミングの勉強をしているのですが、
高階関数のサンプルプログラムの中で理解できない箇所があり、
ご相談させていただきました。
Python
1def logger(func): 2 def inner(*args) 3 print('引数:', args) 4 return func(*args) 5 return inner 6 7def accumulate(a, b): 8 return a+b 9 10newfunc = logger(accumulate) 11print(newfunc(1, 2))
出力結果
引数:(1, 2)
3
上記プログラムのinner(*args)にaccumulate(a, b)の引数(a, b)が渡される理由が理解できません。
そもそも、関数の引数として関数が渡されるとどういった順序で引数側の関数に引数が渡され、
処理されるかといったことも理解てきておりません。。
また、上記の出力するためのコードも
Python
1logger(accumulate(1, 2))
ではなく、
Python
1(logger(accumulate))(1, 2)
となっているように感じるのですが、
認識誤りでしょうか?
仮に、下記になっている場合どのような処理となるのか、
お教えいただけると大変助かります。
お手数をおかけいたしますが、
ご教示いただけますと幸いです。
よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/02/04 13:41
2017/02/04 13:54