Документация Python неофициальный перевод

Объекты срезов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 с установленным исключением).

Скорее всего, эту функцию не следует использовать.

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 при ошибке с установкой исключения.