質問編集履歴
1
<code>機能の使用でkwargs→**kwargsに訂正など
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
### 関数が呼び出された時に'start'、終了した時に'end'と表示するtestというデコレータを定義しよう(O'REILLYの入門 python3 P136復習課題4-10より)
|
2
2
|
|
3
3
|
関数new_funcの処理結果であるresultをstartとendの間に表示しようと考え、print(end)の前にresultが戻り値として表示されるよう組んだのですが、以下のようになりendが表示されなくなってしまいます。
|
4
|
+
```python3
|
4
5
|
>>> def test(func):
|
5
6
|
... def new_func(*args, **kwargs):
|
6
7
|
... print('start')
|
@@ -16,11 +17,13 @@
|
|
16
17
|
>>> greeting()
|
17
18
|
start
|
18
19
|
Hello
|
20
|
+
```
|
19
21
|
|
20
22
|
|
21
23
|
|
22
24
|
### 試したこと
|
23
25
|
解答のコードは以下のようになっており、returnをprint('end')の後ろに持ってくる、というものでした。自分の感覚では、この位置にreturnを書くと、endの後にresultが表示されてしまう(start→end→resultの順)のでは?と考えたのでどうも納得いきません...returnの持つ意味と記述する位置について教えて頂けますと幸いです。
|
26
|
+
``````python3
|
24
27
|
>>> def test(func):
|
25
28
|
... def new_func(*args, **kwargs):
|
26
29
|
... print('start')
|
@@ -37,6 +40,7 @@
|
|
37
40
|
start
|
38
41
|
Hello
|
39
42
|
end
|
43
|
+
```
|
40
44
|
|
41
45
|
|
42
46
|
### 補足情報(FW/ツールのバージョンなど)
|