특정 작업 전후에 필요한 사전(setup)작업과 사후(teardown)작업을 자동으로 처리
목적 : 파일, 네트워크 및 데이터베이스 연결, 잠금(lock)과 같은 리소스를 효율적으로 할당하고 해제
작동 방식
작동 방식 : with 구문을 사용
with 코드블럭이 시작될 때 리소스를 준비(__enter__메서드)하고
블록이 종료될 때 리소스를 정리(__exit__메서드)하는 것을 보장한다.
블록의 종료가 정상적이든, 비정상적이ㄴ든 리소스를 정리한다.
기본 문법
1
2
with리소스asalias:리소스를이용한작업
예시
파일을 열고 닫기
1
2
3
4
5
6
7
8
# 기존 : 파일을 열고, 사용이 종료되면 명시적으로 닫아야 함
file=open("some_text.txt","w")file.write("Hello, World!\n")file.close()# with 구문 : 코드블럭 시작과 종료시에 자동으로 리소스를 관리
withopen("some_text.txt","w")asf:f.write("Hello, World!\m")
댓글 남기기