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구문은 리소스를 자동으로 관리해준다는 측면에서 매우 유용하다.