In [8]: def bar():
...: a = 10
...: try:
...: raise
...: except:
...: try:
...: raise
...: except:
...: raise
...: finally:
...: return a
In [9]: bar()
Out[9]: 10
天蓬老师2017-04-18 10:30:05
매우 흥미롭습니다. 먼저 몇 가지 코드를 실행해 보겠습니다
f()가 예외를 던진 후, Except에서 return을 실행하는 것 같지만 호출자에게 반환되지 않고 finally에서 코드 실행을 "지속"합니다. 이 시점에서 나는 마침내 finally의 진정한 의미를 이해하게 되었습니다. 즉, 반환이 이루어지더라도 finally의 코드는 여전히 실행되어야 한다는 것입니다.
여기서도 try에 종료 메소드가 필요한 명령문이 있으면 finally 실행을 시도한다는 점을 이해할 수 있습니다. finally에 리턴 메소드가 있으면 즉시 리턴하고 이전 종료 명령문은 실행되지 않습니다.
이때 이 코드 문자열을 살펴볼 수 있습니다
지금 배워서 판매하세요. 틀린 부분이 있으면 지적해주세요~