回答編集履歴
1
誤字修正
answer
CHANGED
@@ -1,20 +1,17 @@
|
|
1
1
|
try -> except -> finally の順に実行されています。
|
2
2
|
**ただし return 文を除きます。**
|
3
3
|
|
4
|
+
> except節の一部のみを実行してfinally節を実行し、
|
5
|
+
> except節の残りを実行するという流れが不自然に見えるのですが、
|
6
|
+
> そういうものなのでしょうか...
|
7
|
+
|
4
8
|
「return 文」そのものは、実行されません。しかし
|
5
9
|
「return 文の中に書かれた式」は、実行されます。
|
6
10
|
|
11
|
+
この2つを区別することが、
|
7
|
-
|
12
|
+
理解へのポイントかなと感じています。
|
8
13
|
|
9
|
-
> except節の一部のみを実行してfinally節を実行し、
|
10
|
-
> except節の残りを実行するという流れが不自然に見えるのですが、
|
11
|
-
> そういうものなのでしょうか...
|
12
|
-
|
13
14
|
```python
|
14
|
-
def print_(s):
|
15
|
-
print(s)
|
16
|
-
return s + 2
|
17
|
-
|
18
15
|
def sample():
|
19
16
|
try:
|
20
17
|
raise
|
@@ -25,6 +22,10 @@
|
|
25
22
|
finally:
|
26
23
|
print(2) # 実行2 finally が終わったら return 「文」が実行されます。
|
27
24
|
|
25
|
+
def print_(s):
|
26
|
+
print(s)
|
27
|
+
return s + 2
|
28
|
+
|
28
29
|
print(sample()) # 実行3
|
29
30
|
|
30
31
|
```
|