映射協議?

參見 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.

返回 o 中對應于字符串 key 的元素,或者失敗時返回 NULL。 這相當于 Python 表達式 o[key]。 另請參見 also PyObject_GetItem()

int PyMapping_SetItemString(PyObject?*o, const char?*key, PyObject?*v)?

在對象 o 中將字符串 key 映射到值 v。 失敗時返回 -1。 這相當于 Python 語句 o[key] = v。 另請參見 PyObject_SetItem()

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 版更改: 在之前版本中,此函數返回一個列表或元組。

PyObject* PyMapping_Values(PyObject?*o)?
Return value: New reference.

成功時,返回對象 o 中的值的列表。 失敗時,返回 NULL。

在 3.7 版更改: 在之前版本中,此函數返回一個列表或元組。

PyObject* PyMapping_Items(PyObject?*o)?
Return value: New reference.

成功時,返回對象 o 中條目的列表,其中每個條目是一個包含鍵值對的元組。 失敗時,返回 NULL。

在 3.7 版更改: 在之前版本中,此函數返回一個列表或元組。