對映協議¶
另請參閱 PyObject_GetItem()
、PyObject_SetItem()
和 PyObject_DelItem()
。
-
int PyMapping_Check(PyObject *o)¶
- 作為 穩定 ABI 的一部分。
如果物件提供對映協議或支援切片,則返回
1
,否則返回0
。請注意,它為具有__getitem__()
方法的 Python 類返回1
,因為通常無法確定該類支援何種型別的鍵。此函式總是成功的。
-
Py_ssize_t PyMapping_Size(PyObject *o)¶
-
Py_ssize_t PyMapping_Length(PyObject *o)¶
- 作為 穩定 ABI 的一部分。
成功時返回物件 o 中的鍵數,失敗時返回
-1
。這等同於 Python 表示式len(o)
。
-
PyObject *PyMapping_GetItemString(PyObject *o, const char *key)¶
- 返回值: 新引用。 穩定ABI 的一部分。
這與
PyObject_GetItem()
相同,但 key 指定為 const char* UTF-8 編碼位元組字串,而不是 PyObject*。
-
int PyMapping_GetOptionalItem(PyObject *obj, PyObject *key, PyObject **result)¶
- 自 3.13 版本起成為 穩定 ABI 的一部分。
PyObject_GetItem()
的變體,如果未找到鍵,則不引發KeyError
。如果找到鍵,則返回
1
並將 *result 設定為指向相應值的新 強引用。如果未找到鍵,則返回0
並將 *result 設定為NULL
;KeyError
被靜默。如果引發了除KeyError
之外的錯誤,則返回-1
並將 *result 設定為NULL
。在 3.13 版本加入。
-
int PyMapping_GetOptionalItemString(PyObject *obj, const char *key, PyObject **result)¶
- 自 3.13 版本起成為 穩定 ABI 的一部分。
這與
PyMapping_GetOptionalItem()
相同,但 key 指定為 const char* UTF-8 編碼位元組字串,而不是 PyObject*。在 3.13 版本加入。
-
int PyMapping_SetItemString(PyObject *o, const char *key, PyObject *v)¶
- 作為 穩定 ABI 的一部分。
這與
PyObject_SetItem()
相同,但 key 指定為 const char* UTF-8 編碼位元組字串,而不是 PyObject*。
-
int PyMapping_DelItem(PyObject *o, PyObject *key)¶
這是
PyObject_DelItem()
的別名。
-
int PyMapping_DelItemString(PyObject *o, const char *key)¶
這與
PyObject_DelItem()
相同,但 key 指定為 const char* UTF-8 編碼位元組字串,而不是 PyObject*。
-
int PyMapping_HasKeyWithError(PyObject *o, PyObject *key)¶
- 自 3.13 版本起成為 穩定 ABI 的一部分。
如果對映物件具有鍵 key,則返回
1
,否則返回0
。這等同於 Python 表示式key in o
。失敗時,返回-1
。在 3.13 版本加入。
-
int PyMapping_HasKeyStringWithError(PyObject *o, const char *key)¶
- 自 3.13 版本起成為 穩定 ABI 的一部分。
這與
PyMapping_HasKeyWithError()
相同,但 key 指定為 const char* UTF-8 編碼位元組字串,而不是 PyObject*。在 3.13 版本加入。
-
int PyMapping_HasKey(PyObject *o, PyObject *key)¶
- 作為 穩定 ABI 的一部分。
如果對映物件具有鍵 key,則返回
1
,否則返回0
。這等同於 Python 表示式key in o
。此函式總是成功的。備註
當此呼叫
__getitem__()
方法時發生的異常被靜默忽略。為了正確處理錯誤,請改用PyMapping_HasKeyWithError()
、PyMapping_GetOptionalItem()
或PyObject_GetItem()
。
-
int PyMapping_HasKeyString(PyObject *o, const char *key)¶
- 作為 穩定 ABI 的一部分。
這與
PyMapping_HasKey()
相同,但 key 指定為 const char* UTF-8 編碼位元組字串,而不是 PyObject*。備註
當此呼叫
__getitem__()
方法或建立臨時str
物件時發生的異常被靜默忽略。為了正確處理錯誤,請改用PyMapping_HasKeyStringWithError()
、PyMapping_GetOptionalItemString()
或PyMapping_GetItemString()
。
-
PyObject *PyMapping_Keys(PyObject *o)¶
- 返回值: 新引用。 穩定ABI 的一部分。
成功時,返回物件 o 中鍵的列表。失敗時,返回
NULL
。3.7 版本中的變化: 以前,該函式返回一個列表或一個元組。