Context Manager
: 원하는 타이밍에 정확하게 리소스를 할당 및 제공, 반환하는 역할을 한다.
A context manager is an object that defines the runtime context to be established when executing a with statement. The context manager handles the entry into, and the exit from, the desired runtime context for the execution of the block of code.
python에서는 context manager 프로토콜을 갖는 것을 권고한다.
(for 원하는 타이밍에 정확하게 리소스를 할당하고 제거하기 위해)
context manager 프로토콜을 갖고 있다의 조건은?
- __enter__() 를 구현하고 있어야 한다.
- __exite()__를 구현하고 있어야 한다.
with
>> with 구문을 이용하면 try/finally를 대신해서 더 간편하고 쉽게 사용 가능하다.
>> python의 file 객체는 __enter__와 __exit__ 함수가 구현되어 있다.
>> with 문에 의해 감싸진 객체는,
블럭이 시작되기 이전에 as 뒤의 객체에 __enter__()의 반환값을 할당하고,
블럭을 탈출할 때 해당 객체의 __exit()__을 호출한다.
Keyword : 전체 복습, 타이머 클래스 실습, Contextlib 구현
강의 명 :
모두를 위한 파이썬 : 필수 문법 배우기 Feat. 오픈소스 패키지 배포
강의 링크
python doc
docs.python.org/3/reference/datamodel.html#context-managers
'여니의 Side Project > 인프런 - 리프 (파이썬 고급)' 카테고리의 다른 글
[인프런 리프 대학생 2기] 2주차 미션활동 (0) | 2021.03.18 |
---|---|
[인프런 리프 대학생 2기] 2주차 미션활동 | Context Manager Annotation (0) | 2021.03.15 |
[인프런 리프 대학생 2기] 1주차 미션 활동 Python Advanced(1) (0) | 2021.03.13 |
[인프런 리프 대학생 2기] 1주차 미션 활동 (섹션0. 환경설정편) (0) | 2021.03.13 |
[인프런 대학생 리프 2기] 오리엔테이션 생생한 후기! (2) | 2021.03.08 |