對映協議¶
另請參閱 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 版本中更改: 以前,該函式返回一個列表或一個元組。