with 구문 & 컨텍스트 매니저
참고 : 널널한 교수의 코딩 클래스
(1) try - except - else - finally
try : 시도
-
except : try에서 오류 O시 실행
-
else : try에서 오류 X시 실행
finally : 반드시 실행
(2) try - finally
언제 주로 사용?
- 반드시 실행해야 할 경우!
- ex) 리소스를 오픈한 이후, 이를 close()하는 경우에!
가독성이…흠…
try:
f=open('file.txt','w')
try :
f.write('Hi')
finally :
f.close()
except:
print('NO!')
(3) with 문
try~finally를 보다 간편하게!
context manager에 의해 실행되는 __enter__()
& __exit__()
을 정의하여, with 구문 내의 본문 앞/뒷부분 코드 수행
with expression as x:
body
순서
- 1)
__enter__()
- 2) with 구문 내의 본문
- 3)
__exit__()
Example
with open("file.txt") as f:
# open 이루어짐
data = f.read()
print(data)
# close 이루어짐