컨텍스트 변수는 컨텍스트에 따라 다른 값을 가질 수 있습니다. 각 실행 스레드가 변수에 대해 다른 값을 가질 수 있는 스레드 로컬 저장소와 달리 컨텍스트 변수는 하나의 실행 스레드에서 여러 컨텍스트일 수 있습니다. 이는 동시 비동기 작업에서 변수를 추적하는 데 유용합니다.
ContextVar 클래스는 컨텍스트 변수를 선언하고 사용하는 데 사용됩니다.
import contextvars name = contextvars.ContextVar("name", default = 'Hello')
현재 컨텍스트에서 변수 값을 찾을 수 없는 경우 선택적 기본 매개변수가 ContextVar.get()에 의해 반환됩니다.
이름: 변수의 이름입니다. 읽기 전용 속성입니다.
다음 메소드는 ContextVar 클래스에 정의되어 있습니다.
get() | 현재 컨텍스트에 대한 컨텍스트 변수 값을 반환합니다. 현재 컨텍스트에 변수에 대한 값이 없으면 메서드는 -
|
set() | 현재 컨텍스트에서 컨텍스트 변수에 대한 새 값을 설정하기 위해 호출합니다. |
재설정() | 컨텍스트 변수를 토큰을 생성한 ContextVar.set()이 사용되기 전의 값으로 재설정합니다. |
컨텍스트 변수 모듈의 컨텍스트 클래스는 컨텍스트 변수를 해당 값에 매핑한 것입니다.
컨텍스트(): 값이 없는 빈 컨텍스트를 만듭니다.
현재 컨텍스트의 복사본을 얻으려면 copy_context() 함수를 사용하십시오.
run(callable, *args, **kwargs) 메서드는 run 메서드가 호출된 컨텍스트 개체에서 callable(*args, **kwargs) 코드를 실행하고 실행 결과를 반환합니다. 콜러블이 만드는 모든 컨텍스트 변수에 대한 변경 사항은 컨텍스트 개체에 포함됩니다. 이 메서드는 둘 이상의 OS 스레드에서 동일한 컨텍스트 개체에 대해 호출되거나 재귀적으로 호출될 때 RuntimeError를 발생시킵니다.
복사() | 컨텍스트 개체의 얕은 복사본을 반환합니다. |
컨텍스트[var] | 는 var ContextVar 변수의 값을 반환합니다. 컨텍스트 개체에 변수가 설정되어 있지 않으면 키 오류가 발생합니다. |
get() | 는 컨텍스트 객체에 값이 있는 경우 컨텍스트 var에 대한 값을 반환합니다. 그렇지 않으면 기본값으로 돌아갑니다. 기본값이 주어지지 않으면 None을 반환합니다. |
iter() | 컨텍스트 객체에 저장된 변수에 대한 반복자를 반환합니다. |
len() | 컨텍스트 개체에 설정된 변수의 수를 반환합니다. |
키() | 컨텍스트 개체의 모든 변수 목록을 반환합니다. |
값() | 컨텍스트 개체의 모든 변수 값 목록을 반환합니다. |
항목() | 컨텍스트 개체의 모든 변수와 해당 값을 포함하는 2-튜플 목록을 반환합니다. |