On this page
Mapping Protocol
另请参见PyObject_GetItem(),PyObject_SetItem()和PyObject_DelItem()。
int
PyMapping_Check(PyObject ** o *)- 如果对象提供 Map 协议或支持切片,则返回
1,否则返回0。请注意,对于带有getitem()方法的 Python 类,它将返回1,因为通常无法确定其支持的键类型。此Function始终成功。
- 如果对象提供 Map 协议或支持切片,则返回
Py_ssize_t
PyMapping_Size(PyObject ** o *)Py_ssize_t
PyMapping_Length(PyObject ** o *)- 成功时返回对象* o *中的键数,失败时返回
-1。这等效于 Python 表达式len(o)。
- 成功时返回对象* o *中的键数,失败时返回
返回* 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 *的引用。
- 将字符串* key Map 到对象 o 中的值 v 。失败时返回
int
PyMapping_DelItem(PyObject *o ,PyObject key *)- 从对象* o 中删除对象 key *的 Map。失败时返回
-1。这等效于 Python 语句del o[key]。这是PyObject_DelItem()的别名。
- 从对象* o 中删除对象 key *的 Map。失败时返回
int
PyMapping_DelItemString(PyObject *o ,const char key *)- 从对象* o 中删除字符串 key *的 Map。失败返回
-1。这等效于 Python 语句del o[key]。
- 从对象* o 中删除字符串 key *的 Map。失败返回
int
PyMapping_HasKey(PyObject *o ,PyObject key *)- 如果 Map 对象具有键* key *,则返回
1,否则返回0。这等效于 Python 表达式key in o。此Function始终成功。
- 如果 Map 对象具有键* key *,则返回
请注意,调用getitem()方法时发生的异常将被抑制。要获取错误报告,请改用PyObject_GetItem()。
- int
PyMapping_HasKeyString(PyObject *o ,const char key *)- 如果 Map 对象具有键* key *,则返回
1,否则返回0。这等效于 Python 表达式key in o。此Function始终成功。
- 如果 Map 对象具有键* key *,则返回
请注意,在调用getitem()方法并创建临时字符串对象时发生的异常将被抑制。要获取错误报告,请改用PyMapping_GetItemString()。
成功后,返回对象* o *中的键列表。失败时,返回NULL。
在 3.7 版中进行了更改:以前,该函数返回一个列表或 Tuples。
成功后,返回对象* o *中的值列表。失败时,返回NULL。
在 3.7 版中进行了更改:以前,该函数返回一个列表或 Tuples。
成功后,返回对象* o *中的项目列表,其中每个项目都是包含键值对的 Tuples。失败时,返回NULL。
在 3.7 版中进行了更改:以前,该函数返回一个列表或 Tuples。