コンテキスト変数オブジェクト¶
注釈
バージョン 3.7.1 で変更:Python 3.7.1 で全てのコンテキスト変数の C API のシグネチャは、 PyContext
, PyContextVar
, PyContextToken
の代わりに PyObject
ポインタを使うように 変更 されました。例えば:
// in 3.7.0:
PyContext *PyContext_New(void);
// in 3.7.1+:
PyObject *PyContext_New(void);
詳細は bpo-34762 を参照してください。
バージョン 3.7 で追加.
この節では、 contextvars
モジュールの公開 C API の詳細について説明します。
-
PyContext
¶ contextvars.Context
オブジェクトを表現するための C 構造体。
-
PyContextVar
¶ contextvars.ContextVar
オブジェクトを表現するための C 構造体。
-
PyContextToken
¶ contextvars.Token
オブジェクトを表現するための C 構造体。
-
PyTypeObject
PyContext_Type
¶ コンテキスト 型を表現する型オブジェクト。
-
PyTypeObject
PyContextVar_Type
¶ コンテキスト変数 型を表現する型オブジェクト。
-
PyTypeObject
PyContextToken_Type
¶ コンテキスト変数トークン 型を表現する型オブジェクト。
型チェックマクロ:
-
int
PyContext_CheckExact
(PyObject *o)¶ o が
PyContext_Type
の場合に真を返します。 o はNULL
であってはなりません。 この関数は常に成功します。
-
int
PyContextVar_CheckExact
(PyObject *o)¶ o が
PyContextVar_Type
の場合に真を返します。 o はNULL
であってはなりません。 この関数は常に成功します。
-
int
PyContextToken_CheckExact
(PyObject *o)¶ o が
PyContextToken_Type
の場合に真を返します。 o はNULL
であってはなりません。 この関数は常に成功します。
コンテキストオブジェクトを取り扱う関数:
-
PyObject *
PyContext_New
(void)¶ - Return value: New reference.
新しい空のコンテキストオブジェクトを作成します。 エラーが起きた場合は
NULL
を返します。
-
PyObject *
PyContext_Copy
(PyObject *ctx)¶ - Return value: New reference.
渡された ctx コンテキストオブジェクトの浅いコピーを作成します。 エラーが起きた場合は
NULL
を返します。
-
PyObject *
PyContext_CopyCurrent
(void)¶ - Return value: New reference.
現在のコンテキストオブジェクトの浅いコピーを作成します。 エラーが起きた場合は
NULL
を返します。
-
int
PyContext_Exit
(PyObject *ctx)¶ ctx コンテキストを無効にし、1 つ前のコンテキストを現在のスレッドの現在のコンテキストに復元します。 成功したら
0
を、失敗したら-1
を返します。
-
int
PyContext_ClearFreeList
()¶ コンテキスト変数のフリーリストをクリアします。 解放された要素数を返します。 この関数は常に成功します。
コンテキスト変数の関数:
-
PyObject *
PyContextVar_New
(const char *name, PyObject *def)¶ - Return value: New reference.
新しい``ContextVar``オブジェクトをさくせいします。name 引数は内部走査とデバッグの目的で使われます。def 引数はコンテキスト変数のデフォルト値を指定するか、デフォルトがない場合は``NULL``です。エラーが起きた場合は、関数は``NULL``を返します。
-
int
PyContextVar_Get
(PyObject *var, PyObject *default_value, PyObject **value)¶ コンテキスト変数の値を取得します。 取得中にエラーが起きた場合は
-1
を、値が見付かっても見付からなくてもエラーが起きなかった場合は0
を返します。コンテキスト変数が見付かった場合、 value はそれを指すポインタになっています。 コンテキスト変数が見付から なかった 場合は、 value が指すものは次のようになっています:
(
NULL
でなければ) default_value(
NULL
でなければ) var のデフォルト値NULL
``NULL``を除けば、この関数は新しい参照を返します。
-
PyObject *
PyContextVar_Set
(PyObject *var, PyObject *value)¶ - Return value: New reference.
現在のコンテキストにおいて var の値を value にセットします。この変更による新しいトークンオブジェクトか、エラーが起こった場合は``NULL``を返します。
-
int
PyContextVar_Reset
(PyObject *var, PyObject *token)¶ var コンテキスト変数の状態をリセットし、 token を返した
PyContextVar_Set()
が呼ばれる前の状態に戻します。 この関数は成功したら0
、失敗したら-1
を返します。