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

回答編集履歴

1

誤字修正

2019/10/13 02:42

投稿

nico25
nico25

スコア830

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
- この2つを区別することが、理解へのポイントかなと感じています。
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
  ```