python / 3.7.2rc1 / all / c-api-mapping.html

Mapping Protocol

另请参见PyObject_GetItem()PyObject_SetItem()PyObject_DelItem()

  • int PyMapping_Check(PyObject ** o *)

    • 如果对象提供 Map 协议或支持切片,则返回1,否则返回0。请注意,对于带有getitem()方法的 Python 类,它将返回1,因为通常无法确定其支持的键类型。此Function始终成功。
  • 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 *)
    • 返回值:新参考.

返回* o 的元素,失败时对应于字符串 key *或NULL。这等效于 Python 表达式o[key]。另请参见PyObject_GetItem()

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

    • 将字符串* key Map 到对象 o 中的值 v 。失败时返回-1。这等效于 Python 语句o[key] = v。另请参见PyObject_SetItem()。该Function不会窃取 v *的引用。
  • int PyMapping_DelItem(PyObject *o PyObject key *)

    • 从对象* o 中删除对象 key *的 Map。失败时返回-1。这等效于 Python 语句del o[key]。这是PyObject_DelItem()的别名。
  • int PyMapping_DelItemString(PyObject *o ,const char key *)

    • 从对象* o 中删除字符串 key *的 Map。失败返回-1。这等效于 Python 语句del o[key]
  • int PyMapping_HasKey(PyObject *o PyObject key *)

    • 如果 Map 对象具有键* key *,则返回1,否则返回0。这等效于 Python 表达式key in o。此Function始终成功。

请注意,调用getitem()方法时发生的异常将被抑制。要获取错误报告,请改用PyObject_GetItem()

  • int PyMapping_HasKeyString(PyObject *o ,const char key *)
    • 如果 Map 对象具有键* key *,则返回1,否则返回0。这等效于 Python 表达式key in o。此Function始终成功。

请注意,在调用getitem()方法并创建临时字符串对象时发生的异常将被抑制。要获取错误报告,请改用PyMapping_GetItemString()

成功后,返回对象* o *中的键列表。失败时,返回NULL

在 3.7 版中进行了更改:以前,该函数返回一个列表或 Tuples。

成功后,返回对象* o *中的值列表。失败时,返回NULL

在 3.7 版中进行了更改:以前,该函数返回一个列表或 Tuples。

成功后,返回对象* o *中的项目列表,其中每个项目都是包含键值对的 Tuples。失败时,返回NULL

在 3.7 版中进行了更改:以前,该函数返回一个列表或 Tuples。