Протокол сопоставления¶
См. также PyObject_GetItem()
, PyObject_SetItem()
и PyObject_DelItem()
.
-
int
PyMapping_Check
(PyObject *o)¶ Возвращает
1
, если объект предоставляет протокол сопоставления или поддерживает слайсинг, и0
в противном случае. Обратить внимание, что возвращает1
для классов Python с методом__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, соответствующий строке key или
NULL
при отказе. Это эквивалент 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
, если объект содержит мэппинг ключевого key и0
в противном случае. Это эквивалентно Pythonkey in o
выражению. Эта функция всегда выполняется успешно.Следует отметить, что исключения, возникающие при вызове метода
__getitem__()
, будут подавлены. Чтобы получить отчет об ошибках, используйтеPyObject_GetItem()
.
-
int
PyMapping_HasKeyString
(PyObject *o, const char *key)¶ Возвращает
1
, если объект содержит мэппинг ключа key и0
в противном случае. Это эквивалентно Pythonkey 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: Ранее функция возвращала список или кортеж.