Python with구문.

이형래·2021년 8월 27일
2

Python

목록 보기
6/10

Python with 구문 이해하기.

자원을 획득하고, 사용하고, 반납할때 유용하게 사용할 수 있는 문법.

프로그램시 자원의 활용은

  1. 자원의 획득
  2. 자원의 사용
  3. 자원의 반납

순으로 이어진다.

예를들어

  • 파일을 열고, (자원의 획득)
  • 안의 내용을 사용하고, (자원의 사용)
  • 파일을 닫고. (자원의 반납)

방식이다.

1. with문 사용하지 않는 경우.

# 자원의 획득
f = open("my_text_file.txt", "r")

# 자원의 사용
text = f.read()
print(text)

# 자원의 반납
f.close()

이러한 방식으로 자원을 활용할 수 있다.

2. with문 사용 시.

with open("my_text_file.txt", "r") as f:
    text = f.read()
    print(text)

이렇게 with문이 끝날 때 close를 써주지 않아도 알아서 close가 된다.

3. 활용.

with문은 위와 같이 객체의 Life Cycle을 설계할 수 있다.
(획득 -> 사용 -> 반납) 또는 (생성 -> 사용 -> 소멸) 등.

class PrintNumber:
    # 사용할 자원 생성 및 획득.
    def __enter__(self):
        print("start.")
        return self

    # 자원 사용.
    def print_number(self, num):
        print(f"Number: {num}")

    # 자원 반납 및 후처리.
    def __exit__(self, exc_type, exc_val, exc_tb):
        print("end.")

with PrintNumber() as pn:
    pn.print_number(42)
    pn.print_number(10)
start.
Number: 42
Number: 10
end.



꼭 어떤 문법을 써야한다는 기준은 없지만, 상황에 맞게 가독성이 좋은 방법을 골라 사용하자.
profile
머신러닝을 공부하고 있습니다. 특히 비전 분야에 관심이 많습니다.

0개의 댓글