▶️12

@contextmanager: 제너레이터로 더 쉽게

파일 닫는 걸 또 깜빡했다 - 컨텍스트 매니저

학습 목표

@contextmanager 데코레이터 사용법을 익힌다 제너레이터 기반 컨텍스트 매니저를 이해한다 언제 클래스 vs 데코레이터를 선택할지 안다

▶️

영상 준비 중

12

@contextmanager: 더 간단한 방법

클래스로 컨텍스트 매니저를 만들면 코드가 길어집니다. @contextmanager 데코레이터를 쓰면 훨씬 간단!

클래스 vs @contextmanager

에디터 로딩 중...

@contextmanager의 동작 원리

에디터 로딩 중...

예외 처리

에디터 로딩 중...

선택 가이드

상황추천 방식
간단한 리소스 관리@contextmanager
복잡한 상태 관리클래스
재사용 가능한 인스턴스클래스
일회성 컨텍스트@contextmanager

핵심 인사이트

"@contextmanager는 yield를 기준으로 __enter__와 __exit__를 분리합니다."

핵심 포인트
  • @contextmanager: yield 이전=__enter__, 이후=__exit__
  • yield 값 = as 변수에 할당
  • try/finally로 예외 안전하게 처리
  • 간단한 경우 @contextmanager, 복잡하면 클래스