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

파이썬 컨텍스트 변수

<시간/>

컨텍스트 변수는 컨텍스트에 따라 다른 값을 가질 수 있습니다. 각 실행 스레드가 변수에 대해 다른 값을 가질 수 있는 스레드 로컬 저장소와 달리 컨텍스트 변수는 하나의 실행 스레드에서 여러 컨텍스트일 수 있습니다. 이는 동시 비동기 작업에서 변수를 추적하는 데 유용합니다.

ContextVar 클래스는 컨텍스트 변수를 선언하고 사용하는 데 사용됩니다.

import contextvars
name = contextvars.ContextVar("name", default = 'Hello')

현재 컨텍스트에서 변수 값을 찾을 수 없는 경우 선택적 기본 매개변수가 ContextVar.get()에 의해 반환됩니다.

이름: 변수의 이름입니다. 읽기 전용 속성입니다.

다음 메소드는 ContextVar 클래스에 정의되어 있습니다.

get() 현재 컨텍스트에 대한 컨텍스트 변수 값을 반환합니다. 현재 컨텍스트에 변수에 대한 값이 없으면 메서드는 -
  • 제공된 경우 메서드의 기본 인수 값을 반환합니다. - 또는

  • - 또는

    로 생성된 경우 컨텍스트 변수의 기본값을 반환합니다.
  • LookupError를 발생시킵니다.

set() 현재 컨텍스트에서 컨텍스트 변수에 대한 새 값을 설정하기 위해 호출합니다.
재설정() 컨텍스트 변수를 토큰을 생성한 ContextVar.set()이 사용되기 전의 값으로 재설정합니다.

컨텍스트 변수 모듈의 컨텍스트 클래스는 컨텍스트 변수를 해당 값에 매핑한 것입니다.

컨텍스트(): 값이 없는 빈 컨텍스트를 만듭니다.

현재 컨텍스트의 복사본을 얻으려면 copy_context() 함수를 사용하십시오.

run(callable, *args, **kwargs) 메서드는 run 메서드가 호출된 컨텍스트 개체에서 callable(*args, **kwargs) 코드를 실행하고 실행 결과를 반환합니다. 콜러블이 만드는 모든 컨텍스트 변수에 대한 변경 사항은 컨텍스트 개체에 포함됩니다. 이 메서드는 둘 이상의 OS 스레드에서 동일한 컨텍스트 개체에 대해 호출되거나 재귀적으로 호출될 때 RuntimeError를 발생시킵니다.

복사() 컨텍스트 개체의 얕은 복사본을 반환합니다.
컨텍스트[var] 는 var ContextVar 변수의 값을 반환합니다. 컨텍스트 개체에 변수가 설정되어 있지 않으면 키 오류가 발생합니다.
get() 는 컨텍스트 객체에 값이 있는 경우 컨텍스트 var에 대한 값을 반환합니다. 그렇지 않으면 기본값으로 돌아갑니다. 기본값이 주어지지 않으면 None을 반환합니다.
iter() 컨텍스트 객체에 저장된 변수에 대한 반복자를 반환합니다.
len() 컨텍스트 개체에 설정된 변수의 수를 반환합니다.
키() 컨텍스트 개체의 모든 변수 목록을 반환합니다.
값() 컨텍스트 개체의 모든 변수 값 목록을 반환합니다.
항목() 컨텍스트 개체의 모든 변수와 해당 값을 포함하는 2-튜플 목록을 반환합니다.