async with : 비동기 컨텍스트 매니저
파이썬의 컨텍스트 매니저는 with
블럭을 적용할 수 있는 객체를 말한다. 이러한 객체들은 with 절에서 마치 블럭에 대한 데코레이터처럼 동작한다. 가장 흔한 예가 open() 함수로 생성하는 파일 입출력스트림으로, with 구문 내에서 쓰이면 블럭을 빠져나갈 때 파일을 닫는 동작을 자동으로 수행하게 된다.
with open('data.txt') as f:
for line in f:
print(line)
컨텍스트 매니저 객체는 __enter__()
, __exit__()
두 개의 내장 메소드를 가지고 있는 것으로 간주된다. 위 코드에서는 with
다음에 나오는 open('data.txt')
라는 코드는 파일에 대한 입출력 스트림을 반환한다. 그리고 with 문을 빠져나갈 때, 파일에 대해 __exit__()
가 호출되고 여기서 파일이 닫힐 것이다.