Объекты срезов¶Slice Objects
- PyTypeObject PySlice_Type¶
Объект типа для объектов срезов. Он совпадает с slice и types.SliceType.
- int PySlice_Check(PyObject *ob)¶
- Возвращает true, если ob является объектом среза; ob не должен быть NULL.
- PyObject* PySlice_New(PyObject *start, PyObject *stop, PyObject *step)¶
- Возвращаемое значение: новая ссылка.
Возвращает новый объект среза с указанными значениями. Параметры start, stop и step используются как значения одноимённых атрибутов объекта среза. Любое из значений может быть NULL, и в этом случае для соответствующего атрибута будет использовано None. Возвращает NULL, если не удалось выделить память для нового объекта.
- int PySlice_GetIndices(PySliceObject *slice, Py_ssize_t length, Py_ssize_t *start, Py_ssize_t *stop, Py_ssize_t *step)¶
Извлекает индексы start, stop и step из объекта среза slice, предполагая последовательность длины length. Считает индексы, превышающие length, ошибками.
Возвращает 0 в случае успеха и -1 при ошибке без установки исключения (за исключением случая, когда один из индексов не был None и не удалось преобразовать его в целое число; в этом случае возвращается -1 с установкой исключения).
Вероятно, эту функцию использовать не стоит. Если вы хотите использовать объекты срезов в версиях Python до 2.3, скорее всего, лучше включить исходный код PySlice_GetIndicesEx(), соответствующим образом переименовав его, в исходный код расширения.
Изменено в версии 2.5: В этой функции использовался тип int для length и тип int * для start, stop и step. Это может потребовать изменений в коде для корректной поддержки 64-битных систем.
- int PySlice_GetIndicesEx(PySliceObject *slice, Py_ssize_t length, Py_ssize_t *start, Py_ssize_t *stop, Py_ssize_t *step, Py_ssize_t *slicelength)¶
Подходящая замена для PySlice_GetIndices(). Извлекает значения start, stop и step из объекта среза slice при условии последовательности длины length и сохраняет длину среза в slicelength. Индексы за пределами диапазона обрезаются способом, соответствующим обработке обычных срезов.
Возвращает 0 в случае успеха и -1 при ошибке с установкой исключения.
Новое в версии 2.3.
Изменено в версии 2.5: В этой функции использовался тип int для length и тип int * для start, stop, step и slicelength. Это может потребовать изменений в коде для корректной поддержки 64-битных систем.