teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

1

<code>機能の使用でkwargs→**kwargsに訂正など

2020/05/22 06:08

投稿

hamazon
hamazon

スコア16

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/ツールのバージョンなど)