Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python 컨텍스트 관리자 유형

<시간/>

파이썬에서 런타임 컨텍스트는 with 문에 의해 지원됩니다. 컨텍스트는 컨텍스트 관리자에 의해 정의됩니다. 컨텍스트 관리자를 사용하여 사용자 정의 클래스를 생성하여 런타임 컨텍스트를 정의할 수 있습니다. 문장 본문을 실행하기 전에 태스크에 들어가 문장 본문이 완료되면 종료합니다.

컨텍스트 관리자에는 두 가지 다른 방법이 있습니다. 이러한 방법은 -

메서드 __enter__()

__enter__() 메서드는 런타임 컨텍스트로 들어가는 데 사용됩니다. 현재 개체 또는 다른 관련 개체를 반환합니다. 반환된 값은 with 문의 as 절에 있는 식별자에 바인딩됩니다.

메소드 __exit__(exc_type, exc_val, exc_tb)

__exit__() 메서드는 부울 유형 결과를 반환하는 데 사용됩니다. 발생한 모든 예외를 나타냅니다. with에 대한 한 가지 예외가 있는 경우 명령문을 입력하면 끝 블록으로 이동합니다.

예시 코드

class MyFileManager:def __init__(self, fname):self.file_name =fname def __enter__(self):self.myFile =open(self.file_name, 'r') return self.myFile def __exit__(self, exc_type, exc_val, exc_tb):if self.myFile:myFileManager('sampleTextFile.txt')를 myFile로 사용하여 self.myFile.close():x =myFile.read()print(x)

출력

테스트 파일. 이 파일에 다른 내용을 저장할 수 있습니다~!@#$%^&*()_+/*-+\][{}|:;"'<.>/,'"]