コンテキスト変数オブジェクト
バージョン3.7.1で変更:
ノート
Python 3.7.1では、すべてのコンテキスト変数C APIのシグネチャが変更され、 PyContext 、 PyContextVar 、および PyContextToken 、例:
// in 3.7.0:
PyContext *PyContext_New(void);
// in 3.7.1+:
PyObject *PyContext_New(void);
詳細については、:issue: `34762` を参照してください。
バージョン3.7の新機能。
このセクションでは、 contextvars モジュールのパブリックCAPIについて詳しく説明します。
- type PyContext
- contextvars.Context オブジェクトを表すために使用されるC構造体。
- type PyContextVar
- contextvars.ContextVar オブジェクトを表すために使用されるC構造体。
- type PyContextToken
contextvars.Token
オブジェクトを表すために使用されるC構造体。
- PyTypeObject PyContext_Type
- context タイプを表すタイプオブジェクト。
- PyTypeObject PyContextVar_Type
- コンテキスト変数タイプを表すタイプオブジェクト。
- PyTypeObject PyContextToken_Type
- コンテキスト変数トークンタイプを表すタイプオブジェクト。
タイプチェックマクロ:
- int PyContext_CheckExact(PyObject *o)
- o のタイプが PyContext_Type の場合、trueを返します。 o は
NULL
であってはなりません。 この関数は常に成功します。
- int PyContextVar_CheckExact(PyObject *o)
- o のタイプが PyContextVar_Type の場合、trueを返します。 o は
NULL
であってはなりません。 この関数は常に成功します。
- int PyContextToken_CheckExact(PyObject *o)
- o のタイプが PyContextToken_Type の場合、trueを返します。 o は
NULL
であってはなりません。 この関数は常に成功します。
コンテキストオブジェクト管理機能:
- PyObject *PyContext_New(void)
- 新しい空のコンテキストオブジェクトを作成します。 エラーが発生した場合は
NULL
を返します。
- 渡された ctx コンテキストオブジェクトのシャローコピーを作成します。 エラーが発生した場合は
NULL
を返します。
- PyObject *PyContext_CopyCurrent(void)
- 現在のスレッドコンテキストのシャローコピーを作成します。 エラーが発生した場合は
NULL
を返します。
- int PyContext_Enter(PyObject *ctx)
- ctx を現在のスレッドの現在のコンテキストとして設定します。 成功した場合は
0
を返し、エラーの場合は-1
を返します。
- int PyContext_Exit(PyObject *ctx)
- ctx コンテキストを非アクティブ化し、前のコンテキストを現在のスレッドの現在のコンテキストとして復元します。 成功した場合は
0
を返し、エラーの場合は-1
を返します。
コンテキスト変数関数:
- 新しい
ContextVar
オブジェクトを作成します。 name パラメーターは、イントロスペクションとデバッグの目的で使用されます。 def パラメーターは、コンテキスト変数のデフォルト値を指定します。デフォルトがない場合は、NULL
を指定します。 エラーが発生した場合、この関数はNULL
を返します。
- int PyContextVar_Get(PyObject *var, PyObject *default_value, PyObject **value)
コンテキスト変数の値を取得します。 ルックアップ中にエラーが発生した場合は
-1
を返し、エラーが発生しなかった場合は値が見つかったかどうかに関係なく0
を返します。コンテキスト変数が見つかった場合、 value はそれへのポインターになります。 コンテキスト変数が not であった場合、 value は次のことを指します。
default_value 、そうでない場合
NULL
;NULL
でない場合は、 var のデフォルト値。NULL
NULL
を除いて、関数は新しい参照を返します。
- 現在のコンテキストで、 var の値を value に設定します。 この変更の新しいトークンオブジェクトを返します。エラーが発生した場合は
NULL
を返します。
- var コンテキスト変数の状態を、トークンを返した PyContextVar_Set()が呼び出される前の状態にリセットします。 この関数は、成功した場合は
0
を返し、エラーの場合は-1
を返します。