デコレータについての質問です。それぞれの例のコードを打ってみると例1ではResultが64例2ではResultが8になるのですがこの感じだと最後に返す結果も足し算した8がreturnが返すと思うのですが64が帰ってきました。なぜだか教えてくださるとありがたいです。
python
1def document_it(func): 2 def new_function(*args, **kwargs): 3 print('Running function', func.__name__) 4 result = func(*args, **kwargs) 5 print('Result', result) 6 return result 7 return new_function 8 9 10def square_it(func): 11 def new_function(*args, **kwargs): 12 result = func(*args, **kwargs) 13 return result*result 14 return new_function 15#例1 16@document_it 17@square_it 18def add_ints(a, b): 19 return a+b 20add_ints(3, 5) 21#例2 22@squre_it 23@document_it 24def add_ints(a, b) 25 return a+b 26add_ints(3, 5) 27 28 29 30 31 32
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。