Programming 기초/Python
context manager란?
코딩상륙작전
2024. 12. 3. 04:42
Context manager
특정 리소스나 실행 컨텍스트를 설정하고, 작업이 끝난 후 자동으로 이를 정리(clean up)하는 방법을 제공하는 기능이다.
from typing import Protocol
class CustomContextManager(Protocol):
def __enter__(self):
print("Entering the context")
return self # 필요한 리소스 반환 가능
def __exit__(self, exc_type, exc_value, traceback):
print("Exiting the context")
return False # 예외를 호출자로 전달
# 사용
with CustomContextManager() as manager:
print("Inside the context")
1. Python에서 프로토콜은 객체가 특정 동작을 수행하기 위해 따라야 하는 비공식적인 "규약"이고,
2. Context Manager 프로토콜은 __enter__와 __exit__ 메서드를 요구하며,
3. 이를 구현한 객체는 with 구문에서 사용할 수 있다.
4. with구문은 리소스를 자동으로 관리해준다는 측면에서 매우 유용하다.