2つのデコレータを用いたコードの処理の順序についてわかりません。
以下のコードを実行したときに
python
1ソースコード 2def print_info(func): 3 def info(*args, **kwargs): 4 print("関数:", func.__name__) 5 result = func(*args, **kwargs) 6 return result 7 return info 8 9def print_passage(func): 10 def passage(*args, **kwargs): 11 print("start") 12 result = func(*args, **kwargs) 13 print("end") 14 return result 15 return passage 16 17@print_passage 18@print_info 19 20def add_cal(a, b): 21 return a + b 22r=add_cal(10,20) 23print(r)
実行結果が
python
1start 2関数名: add_calc 3end 430
となる理由がわかりません。どういう順序で処理がされたのを教えていただけるとありがたいです。
よろしくお願いいたします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/03/06 11:14
2020/03/06 12:01