コンテキスト変数オブジェクト—Pythonドキュメント

提供:Dev Guides
< PythonPython/docs/3.9/c-api/contextvars
移動先:案内検索

コンテキスト変数オブジェクト

バージョン3.7.1で変更:

ノート

Python 3.7.1では、すべてのコンテキスト変数C APIのシグネチャが変更されPyContextPyContextVar 、および 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を返します。 oNULLであってはなりません。 この関数は常に成功します。
int PyContextVar_CheckExact(PyObject *o)
o のタイプが PyContextVar_Type の場合、trueを返します。 oNULLであってはなりません。 この関数は常に成功します。
int PyContextToken_CheckExact(PyObject *o)
o のタイプが PyContextToken_Type の場合、trueを返します。 oNULLであってはなりません。 この関数は常に成功します。

コンテキストオブジェクト管理機能:

PyObject *PyContext_New(void)
新しい空のコンテキストオブジェクトを作成します。 エラーが発生した場合はNULLを返します。
PyObject *PyContext_Copy(PyObject *ctx)
渡された ctx コンテキストオブジェクトのシャローコピーを作成します。 エラーが発生した場合はNULLを返します。
PyObject *PyContext_CopyCurrent(void)
現在のスレッドコンテキストのシャローコピーを作成します。 エラーが発生した場合はNULLを返します。
int PyContext_Enter(PyObject *ctx)
ctx を現在のスレッドの現在のコンテキストとして設定します。 成功した場合は0を返し、エラーの場合は-1を返します。
int PyContext_Exit(PyObject *ctx)
ctx コンテキストを非アクティブ化し、前のコンテキストを現在のスレッドの現在のコンテキストとして復元します。 成功した場合は0を返し、エラーの場合は-1を返します。

コンテキスト変数関数:

PyObject *PyContextVar_New(const char *name, PyObject *def)
新しいContextVarオブジェクトを作成します。 name パラメーターは、イントロスペクションとデバッグの目的で使用されます。 def パラメーターは、コンテキスト変数のデフォルト値を指定します。デフォルトがない場合は、NULLを指定します。 エラーが発生した場合、この関数はNULLを返します。
int PyContextVar_Get(PyObject *var, PyObject *default_value, PyObject **value)

コンテキスト変数の値を取得します。 ルックアップ中にエラーが発生した場合は-1を返し、エラーが発生しなかった場合は値が見つかったかどうかに関係なく0を返します。

コンテキスト変数が見つかった場合、 value はそれへのポインターになります。 コンテキスト変数が見つからなかった場合、は次のことを指します。

  • default_value 、そうでない場合NULL;

  • NULLでない場合は、 var のデフォルト値。

  • NULL

NULLを除いて、関数は新しい参照を返します。

PyObject *PyContextVar_Set(PyObject *var, PyObject *value)
現在のコンテキストで、 var の値を value に設定します。 この変更の新しいトークンオブジェクトを返します。エラーが発生した場合はNULLを返します。
int PyContextVar_Reset(PyObject *var, PyObject *token)
var コンテキスト変数の状態を、トークンを返した PyContextVar_Set()が呼び出される前の状態にリセットします。 この関数は、成功した場合は0を返し、エラーの場合は-1を返します。