▶️12분
@contextmanager: 제너레이터로 더 쉽게
파일 닫는 걸 또 깜빡했다 - 컨텍스트 매니저
@contextmanager: 제너레이터로 더 쉽게
Python 고급: 제너레이터, 데코레이터, 컨텍스트 매니저, Type Hints > 파일 닫는 걸 또 깜빡했다 - 컨텍스트 매니저
학습 목표
@contextmanager 데코레이터 사용법을 익힌다 제너레이터 기반 컨텍스트 매니저를 이해한다 언제 클래스 vs 데코레이터를 선택할지 안다
▶️
영상 준비 중
12분
@contextmanager: 더 간단한 방법
클래스로 컨텍스트 매니저를 만들면 코드가 길어집니다. @contextmanager 데코레이터를 쓰면 훨씬 간단!
클래스 vs @contextmanager
에디터 로딩 중...
@contextmanager의 동작 원리
에디터 로딩 중...
예외 처리
에디터 로딩 중...
선택 가이드
| 상황 | 추천 방식 |
|---|---|
| 간단한 리소스 관리 | @contextmanager |
| 복잡한 상태 관리 | 클래스 |
| 재사용 가능한 인스턴스 | 클래스 |
| 일회성 컨텍스트 | @contextmanager |
핵심 인사이트
"@contextmanager는 yield를 기준으로 __enter__와 __exit__를 분리합니다."
핵심 포인트
- • @contextmanager: yield 이전=__enter__, 이후=__exit__
- • yield 값 = as 변수에 할당
- • try/finally로 예외 안전하게 처리
- • 간단한 경우 @contextmanager, 복잡하면 클래스