본문 바로가기
파이썬

with문은 시작 시점에 해당 클래스의 __enter__(self) 메쏘드를 호출해주고, with문 끝에 __exit__(type, value, traceback)메쏘드를 호출

by 혜룐 2016. 1. 5.


* with 문


시작-처리-종료의 과정을 밟는 파일 처리, 데이터베이스처리, 네트워크 처리를 다루는 클래스를 위해서 파이썬은 with 문을 제공하고 있다. 문법은 아래와 같다.

with 클래스 생성자 as 오브젝트:
코드블럭


파일을 예로 든다면

f = file('test.txt','r')
for line in f:
print line
f.close()


은 with 문으로 전환하면 아래와 같이 전환시킬 수 있다.

with file('test.txt','r') as f:
for line in f:
print line


with문은 시작 시점에 해당 클래스의 __enter__(self) 메쏘드를 호출해주고, with문 끝에 __exit__(type, value, traceback)메쏘드를 호출해 주므로 해당 시점에 적절한 코드를 클래스 정의에 포함시키면 with문에 따른 효과적인 처리가 가능해진다.