contextlib¶
Python에서 with라는 키워드를 사용하면뭔가의 시작과 끝을 제어할 수 있다.
보통 파일을 열때 많이 쓰는데 다음과 같다.
with open('test.txt', 'r') as txt:
txt.read()
...
이렇게 사용하면 txt라는 변수에 할당된 파일을 with 구문이 끝나면 자동으로 닫아준다.
Python의 contextlib을 사용하면 저것과 비슷한 역할을 하는 함수를 만들 수 있다.
@contextmanater라는 데코레이터로 함수를 감싸기만하면 된다.
from contextlib import contextmanager
@contextmanager
def get_database_connection():
try:
conn = db_client.connect()
yield conn
finally:
conn.close()
with get_database_connection() as conn:
conn.execute(query)
...