FrontEnd
Javascript
Diary
ML
CS
Django
Algorithm
AWS
Co-Work
HTML
CSS
Python
React
ReactNative

Python with 구문과 context manager

python code를 보다보면 with 를 마주칠때가 있다.

python 2.5부터 추가된 기능으로

with 구문이 실행됨에 있어서 내부적으로 __enter____exit__반드시 실행되기때문에 효과적으로 코드를 작성할 수 있게 도와준다

이때 context managerwith구문에 쓰일수 있는 객체의 타입이고, 이는 context manager protocol을 따른다


가장 쉽게 볼수 있는 예로 file handler가 context manager protocol을 따르는데

with open('example.txt' , 'w' ) as f:
    f.write("my text")

이렇게 작성을 해주면with 구문이 동작하고 끝나는 시점에서 file close를 수행해주기 때문에 코드를 간편하게 작성해줄 수 있다.