回答編集履歴
1
d
answer
CHANGED
@@ -1,10 +1,10 @@
|
|
1
|
-
コードの挙動として、greeting() を呼び出したとき以下の順序で実行されます。
|
1
|
+
コードの挙動として、`greeting()` を呼び出したとき以下の順序で実行されます。
|
2
2
|
|
3
|
-
1. 引数 func に greeting() が渡されて、test() が呼び出される。(つまり、func = greeting())
|
3
|
+
1. 引数 `func` に `greeting()` が渡されて、`test()` が呼び出される。(つまり、`func = greeting()`)
|
4
|
-
1. print("start") で start が出力
|
4
|
+
1. `print("start")` で `start` が出力
|
5
|
-
1. func(*args, **kwargs)、つまり、greeting(*args, **kwargs) が呼び出される。
|
5
|
+
1. `func(*args, **kwargs)`、つまり、`greeting(*args, **kwargs)` が呼び出される。
|
6
|
-
1. greeting() 内の print("Hello") で Hello が出力
|
6
|
+
1. `greeting()` 内の `print("Hello")` で Hello が出力
|
7
|
-
1. print("end") で end が出力
|
7
|
+
1. `print("end")` で `end` が出力
|
8
8
|
|
9
9
|
詳細はデコレーターの仕組みについて理解する必要があります。
|
10
10
|
|
@@ -28,15 +28,15 @@
|
|
28
28
|
greeting()
|
29
29
|
```
|
30
30
|
|
31
|
-
質問の1つ目のコードで return したら end が表示されなくなった理由は
|
31
|
+
質問の1つ目のコードで `return` したら `end` が表示されなくなった理由は
|
32
32
|
|
33
|
-
1. 引数 func に greeting() が渡されて、test() が呼び出される。(つまり、func = greeting())
|
33
|
+
1. 引数 `func` に `greeting()` が渡されて、`test()` が呼び出される。(つまり、`func = greeting()`)
|
34
|
-
1. print("start") で start が出力
|
34
|
+
1. `print("start")` で `start` が出力
|
35
|
-
1. func(*args, **kwargs)、つまり、greeting(*args, **kwargs) が呼び出される。
|
35
|
+
1. `func(*args, **kwargs)`、つまり、`greeting(*args, **kwargs)` が呼び出される。
|
36
|
-
1. greeting() 内の print("Hello") で Hello が出力
|
36
|
+
1. `greeting()` 内の `print("Hello")` で `Hello` が出力
|
37
|
-
1. return result で test() 関数が終了する
|
37
|
+
1. `return result` で `test()` 関数が終了する
|
38
38
|
|
39
|
-
となり、return より後の print("end") が実行されなくなったためです。
|
39
|
+
となり、`return` より後の `print("end")` が実行されなくなったためです。
|
40
40
|
|
41
41
|
```python
|
42
42
|
def test(func):
|