본문 바로가기

카테고리 없음

Python의 with...as 문에 대한 이해

Python에서 파일 처리를 하는 경우 파일을 open 한 후에 close 작업을 해줘야 한다. 

하지만 매번 이렇게 할 경우 귀찮음은 물론이고 잊어 버릴 수도 있다. 


예를들어 다음과 같은 경우 



이런식으로 해줘야 한다. 
어떤 오브젝트를 open하고 매번 close 하는일은 C에서나 할 법한 일이다. 
Python은 그런 귀차니즘을 덜어내주기 위해 python 2.5에서 부터는 다음과 같은 문이 존재한다. 


with A:

pass


with 블럭이 시작되는 시점에 A.enter()를 호출하고 빠져나오는 시점에 A.exit()를 호출한다. 

예를 들어 



위와 


이는 객체에서 enter와 exit()함수가 정의 되어 있어야 한다.