자원을 사용 할떈
1. 자원 획득
2. 자원 사용
3. 자원 반납
구조가 필요함.
1. __enter__ 일급함수
2. 자원 사용할 일반함수
3. __exit__ 일급함수
with 를 쓰면 일일히 자원 획득부터 반납까지(1 ~ 3) 단계를 쓸 필요가 없다.
자동으로 획득후 사용 , 사용다하고 스코프를 나가면 반납 함.
형식 :
with 클래스명( ) as 네임:
네임.자원함수()
예시 :
class Hello:
def __enter__(self):
# 사용할 자원을 가져오거나 만든다(핸들러 등)
print('enter...')
return self # 반환값이 있어야 VARIABLE를 블록내에서 사용할 수 있다
def sayHello(self, name):
# 자원을 사용한다. ex) 인사한다
print('hello ' + name)
def __exit__(self, exc_type, exc_val, exc_tb):
# 마지막 처리를 한다(자원반납 등)
print('exit...')
if __name__ == '__main__':
with Hello() as h:
h.sayHello('obama')
h.sayHello('trump')
'언어 정리 > python_lib,일급함수' 카테고리의 다른 글
json_to_X, X_to_json (0) | 2022.10.25 |
---|---|
unittest tutorial 개념 정리 (1) | 2022.09.19 |
import contextvars 설명 (2) | 2022.08.28 |
functools.partial() 정리 (0) | 2022.08.17 |
PIL , 출력문 저장 lib(write,print,sys.out) (0) | 2022.08.04 |
댓글