映射协议

也见 PyObject_GetItem()PyObject_SetItem()PyObject_DelItem() .

int PyMapping_Check(PyObject *o)

返回 1 如果对象提供映射协议或支持切片,以及 0 否则。注意它会返回 1 对于具有 __getitem__() 方法,因为通常情况下无法确定它支持哪种类型的键。这个函数总是成功的。

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 对应于字符串 keyNULL 失败论。这相当于python表达式 o[key] . 也见 PyObject_GetItem() .

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

映射字符串 key 价值观 v 在宾语中 o . 退换商品 -1 失败论。这相当于python语句 o[key] = v . 也见 PyObject_SetItem() . 这个函数 窃取对的引用 v .

int PyMapping_DelItem(PyObject *o, PyObject *key)

删除对象的映射 key 从对象 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)

返回 1 如果映射对象具有键 key0 否则。这相当于python表达式 key in o . 此函数总是成功的。

请注意,调用 __getitem__() 方法将被抑制。要获取错误报告,请使用 PyObject_GetItem() 相反。

int PyMapping_HasKeyString(PyObject *o, const char *key)

返回 1 如果映射对象具有键 key0 否则。这相当于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 版更改: 在此之前,函数返回了一个列表或元组。