여니의 Side Project/인프런 - 리프 (파이썬 고급)

[인프런 리프 대학생 2기] 1주차 미션 활동 | Context Manager(1)

여니's 2021. 3. 14. 21:16

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. 오픈소스 패키지 배포

 

강의 링크 

www.inflearn.com/course/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D-%ED%8C%8C%EC%9D%B4%EC%8D%AC-%EC%A4%91%EA%B3%A0%EA%B8%89/dashboard

 

모두를 위한 파이썬 : 필수 문법 배우기 Feat. 오픈소스 패키지 배포 (Inflearn Original) - 인프런 | 강

폭넓은 파이썬 개발 경험, 온오프라인 수업 경험을 바탕으로 파이썬 메타프로그래밍, 깊이있는 문법을 다루기 위한 과정입니다. 더 나아가 파이썬 취준생 면접 및 경력자분들의 기술면접에도

www.inflearn.com


python doc 

docs.python.org/3/reference/datamodel.html#context-managers

 

3. Data model — Python 3.9.2 documentation

A class can implement certain operations that are invoked by special syntax (such as arithmetic operations or subscripting and slicing) by defining methods with special names. This is Python’s approach to operator overloading, allowing classes to define

docs.python.org