Programing

python 키워드 "with"는 무엇에 사용됩니까?

lottogame 2020. 2. 15. 19:37
반응형

python 키워드 "with"는 무엇에 사용됩니까? [복제]


이 질문에는 이미 답변이 있습니다.

파이썬 키워드 "with"는 무엇에 사용됩니까?

예 : http://docs.python.org/tutorial/inputoutput.html

>>> with open('/tmp/workfile', 'r') as f:
...     read_data = f.read()
>>> f.closed
True

파이썬에서 with키워드는 파일 스트림과 같은 관리되지 않는 리소스로 작업 할 때 사용됩니다. usingVB.NET 및 C # 명령문 과 유사합니다 . 예외가 발생하더라도 자원을 사용하는 코드의 실행이 완료되면 자원이 "정리"되도록 할 수 있습니다. 그것은 try/finally블록에 '구문 설탕'을 제공합니다 .

에서 파이썬 문서 :

with이전에 사용하는 것이 문 관계를 설명 코드 try...finally가 정리 코드를 확인하기 위해 블록이 실행됩니다. 이 섹션에서는 일반적으로 사용되는 명령문에 대해 설명합니다. 다음 섹션에서는 구현 세부 사항을 살펴보고이 문에 사용할 개체를 작성하는 방법을 보여 드리겠습니다.

with문은 그 기본적인 구성되는 제어 흐름 구조이다 :

with expression [as variable]:
    with-block

표현식이 평가되고 컨텍스트 관리 프로토콜을 지원하는 오브젝트 (즉, 보유 __enter__()__exit__()메소드)가 생성됩니다.

Scott Wisniewski의 의견에 따라 고정 VB 콜 아웃을 업데이트하십시오 . 나는 참으로 혼란 한 withusing.


Preshing on Programming 블로그의 설명 :

코드 블록을 사이에두고 한 쌍으로 실행하려는 두 개의 관련 작업이있을 때 편리합니다. 전형적인 예는 파일을 열고 파일을 조작 한 다음 닫는 것입니다.

 with open('output.txt', 'w') as f:
     f.write('Hi there!')

위의 with 문은 중첩 된 코드 블록 다음에 파일을 자동으로 닫습니다. (닫기가 어떻게 발생하는지 정확하게 읽으려면 계속 읽으십시오.) with 문을 사용하면 중첩 된 블록이 종료되는 방식에 관계없이 파일을 닫을 수 있다는 장점이 있습니다. 블록이 끝나기 전에 예외가 발생하면 외부 예외 처리기가 예외를 포착하기 전에 파일을 닫습니다. 중첩 된 블록에 return 문이나 continue 또는 break 문이 포함 된 경우 with 문은 이러한 경우에도 파일을 자동으로 닫습니다.

참고 URL : https://stackoverflow.com/questions/1369526/what-is-the-python-keyword-with-used-for



반응형