메뉴 바로가기 검색 및 카테고리 바로가기

한빛미디어

뇌를 자극하는 파이썬

뇌를 자극하는 파이썬 질의응답 게시판입니다.

contextmanager 에서 try 코드블럭 안에서 자원 획득 문의

2017-01-01

|

by youngki6

1535

P.248 ~ 249

from contextlib import contextmanager

 

@conextmanager

def 함수이름():

    # 자원 획득

    try:

        yield 자원

    finally:

        # 자원 해제

로 설명해 주셨는데요,

 

open3.py를 아래와 같이 변경하면, 어떠세요?

from contextlib import contextmanager

 

@contextmanager

def open3(path):

    try:

        print("opening file...")

        file = open(path)

        print("yielding file...")

        yield file

    finally:

        print("closing file...")

        file.close()

 

with open3("test.txt") as file:

    s = file.read()

    print(s)

 

댓글 입력