Python
1 2def print_info(func): 3 def wrapper(*args, **kwargs): 4 print("######") 5 result = func(*args, **kwargs) #タプル化された引数である(1, 2)が渡される 6 print("######") 7 return result 8 return wrapper 9 10def add(a, b):# タプル化された引数である(1, 2)が渡される 11 # add(*(a,b))でないとエラーのはずでは??、、、 12 return a + b 13 14f = print_info(add) 15r = f(1, 2)
このコードを見たときに、以下のような理解をしました。
funcに渡された引数(*args)はタプル化された引数である(1, 2)
つまり、funcとはadd関数を示しているのでadd関数にタプルの(1, 2)が渡されるということ。
add関数でタプルのアンパッキング・展開をしていないのになぜエラーがでないのかがわかりません
(私が想定しているのは add(*(a, b)でないとエラーがでるのではないか)
よろしくお願いいたします。(参考資料等があればリンクもお願いいたします)
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/04/18 09:42 編集
2020/04/18 09:48
2020/04/18 09:58
2020/04/18 10:37