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。