マップ型プロトコル (mapping protocol)¶
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)
と同じになります。
-
PyObject*
PyMapping_GetItemString
(PyObject *o, const char *key)¶ - Return value: New reference.
文字列 key に対応する o の要素を返します。失敗すると
NULL
を返します。 Python の式o[key]
と同じです。PyObject_GetItem()
も参照してください。
-
int
PyMapping_SetItemString
(PyObject *o, const char *key, PyObject *v)¶ オブジェクト o 上で文字列 key を値 v に対応付けます。失敗すると
-1
を返します。 Python の文o[key] = v
と同じです。PyObject_SetItem()
も参照してください。 この関数は v への参照を盗み取り ません。
-
int
PyMapping_DelItem
(PyObject *o, PyObject *key)¶ オブジェクト o から、オブジェクト key に関する対応付けを削除します。 失敗すると
-1
を返します。 Python の文del o[key]
と同じです。 この関数はPyObject_DelItem()
の別名です。
-
int
PyMapping_DelItemString
(PyObject *o, const char *key)¶ オブジェクト o から、文字列 key に関する対応付けを削除します。 失敗すると
-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)¶ - Return value: New reference.
成功するとオブジェクト o のキーからなるリストを返します。 失敗すると
NULL
を返します。バージョン 3.7 で変更: 以前は、関数はリストもしくはタプルを返していました。