Mapping Protocol

  • int PyMapping_Check(PyObject ** o *)

    • 如果对象提供了 Map 协议,则返回1,否则返回0。此Function始终成功。
  • Py_ssize_t PyMapping_Size(PyObject ** o *)

  • Py_ssize_t PyMapping_Length(PyObject ** o *)

    • 成功时返回对象* o *中的键数,失败时返回-1。对于不提供 Map 协议的对象,这等效于 Python 表达式len(o)

在版本 2.5 中进行了更改:这些函数返回了int类型。这可能需要更改您的代码以正确支持 64 位系统。

  • int PyMapping_DelItemString(PyObject *o ,char key *)

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

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

    • 成功时,如果 Map 对象具有键* key *,则返回1,否则返回0。这等效于o[key],如果成功则返回True,如果异常则返回False。此Function始终成功。
  • int PyMapping_HasKey(PyObject *o PyObject key *)

    • 如果 Map 对象具有键* key *,则返回1,否则返回0。这等效于o[key],如果成功则返回True,如果异常则返回False。此Function始终成功。
  • PyObject * PyMapping_Keys(PyObject ** o *)

    • 返回值:新参考.

成功后,返回对象* o 中的键列表。失败时,返回 NULL *。这等效于 Python 表达式o.keys()

成功后,返回对象* o 中的值列表。失败时,返回 NULL *。这等效于 Python 表达式o.values()

成功后,返回对象* o 中的项目列表,其中每个项目都是包含键值对的 Tuples。失败时,返回 NULL *。这等效于 Python 表达式o.items()

  • PyObject * PyMapping_GetItemString(PyObject *o ,char key *)
    • 返回值:新参考.

返回* o 的元素,失败时对应于对象 key NULL *。这等效于 Python 表达式o[key]

  • int PyMapping_SetItemString(PyObject *o ,char key *,PyObject ** v *)
    • 将对象* key Map 到对象 o 中的值 v *。失败时返回-1。这等效于 Python 语句o[key] = v