マッピングプロトコル
PyObject_GetItem()、 PyObject_SetItem()、および PyObject_DelItem()も参照してください。
- int PyMapping_Check(PyObject *o)
- オブジェクトがマッピングプロトコルを提供するか、スライスをサポートする場合は
1
を返し、それ以外の場合は0
を返します。__getitem__()
メソッドを使用するPythonクラスの場合は1
を返すことに注意してください。これは、通常、サポートするキーのタイプを判別できないためです。 この関数は常に成功します。
- Py_ssize_t PyMapping_Size(PyObject *o)
Py_ssize_t PyMapping_Length(PyObject *o)
- 成功した場合はオブジェクト o のキーの数を返し、失敗した場合は
-1
のキーの数を返します。 これは、Python式len(o)
と同等です。
- 失敗した場合、文字列 key または
NULL
に対応する o の要素を返します。 これは、Python式o[key]
と同等です。 PyObject_GetItem()も参照してください。
- 文字列キーをオブジェクト o の値 v にマップします。 失敗すると
-1
を返します。 これは、Pythonステートメントo[key] = v
と同等です。 PyObject_SetItem()も参照してください。 この関数は v への参照を盗みません。
- オブジェクトキーのマッピングをオブジェクト o から削除します。 失敗した場合は
-1
を返します。 これは、Pythonステートメントdel o[key]
と同等です。 これは PyObject_DelItem()のエイリアスです。
- int PyMapping_DelItemString(PyObject *o, const char *key)
- 文字列 key のマッピングをオブジェクト o から削除します。 失敗した場合は
-1
を返します。 これは、Pythonステートメントdel o[key]
と同等です。
- int PyMapping_HasKey(PyObject *o, PyObject *key)
マッピングオブジェクトにキー key がある場合は
1
を返し、そうでない場合は0
を返します。 これは、Python式key in o
と同等です。 この関数は常に成功します。__getitem__()
メソッドの呼び出し中に発生する例外は抑制されることに注意してください。 エラー報告を取得するには、代わりに PyObject_GetItem()を使用してください。
- int PyMapping_HasKeyString(PyObject *o, const char *key)
マッピングオブジェクトにキー key がある場合は
1
を返し、そうでない場合は0
を返します。 これは、Python式key in o
と同等です。 この関数は常に成功します。__getitem__()
メソッドを呼び出して一時文字列オブジェクトを作成しているときに発生する例外は、抑制されることに注意してください。 エラー報告を取得するには、代わりに PyMapping_GetItemString()を使用してください。
- PyObject *PyMapping_Keys(PyObject *o)
成功すると、オブジェクト o のキーのリストを返します。 失敗した場合は、
NULL
を返します。バージョン3.7で変更:以前は、関数はリストまたはタプルを返していました。
- PyObject *PyMapping_Values(PyObject *o)
成功すると、オブジェクト o の値のリストを返します。 失敗した場合は、
NULL
を返します。バージョン3.7で変更:以前は、関数はリストまたはタプルを返していました。
- PyObject *PyMapping_Items(PyObject *o)
成功すると、オブジェクト o 内のアイテムのリストを返します。各アイテムは、キーと値のペアを含むタプルです。 失敗した場合は、
NULL
を返します。バージョン3.7で変更:以前は、関数はリストまたはタプルを返していました。