> **Источник:** https://python-all.ru/3.0/c-api/slice.html
>
> «Документация Python на русском» – неофициальный перевод официальной документации Python: версии от 2.6 до 3.16, полнотекстовый поиск, английский оригинал рядом с переводом. Эта Markdown-версия страницы предназначена для работы с LLM: вставьте её в ChatGPT, Claude или Cursor.

---

# Объекты срезов

**\[PySlice\_Type\][PyTypeObject](https://python-all.ru/3.0/c-api/type.html#PyTypeObject) `PySlice_Type`**

Объект типа для объектов срезов. Он совпадает с `slice` и `types.SliceType`.

**\[PySlice\_Check\]int `PySlice_Check`([PyObject](https://python-all.ru/3.0/c-api/structures.html#PyObject) *\*ob*)**

Возвращает true, если

*ob*

является объектом среза;

*ob*

не должен быть

*NULL*

.

**\[PySlice\_New\][PyObject](https://python-all.ru/3.0/c-api/structures.html#PyObject)\* `PySlice_New`([PyObject](https://python-all.ru/3.0/c-api/structures.html#PyObject) *\*start*, [PyObject](https://python-all.ru/3.0/c-api/structures.html#PyObject) *\*stop*, [PyObject](https://python-all.ru/3.0/c-api/structures.html#PyObject) *\*step*)**

*Возвращаемое значение: новая ссылка.*

Возвращает новый объект среза с заданными значениями. Параметры *start*, *stop* и *step* используются как значения одноимённых атрибутов объекта среза. Любое из значений может быть *NULL*; в этом случае для соответствующего атрибута будет использоваться `None`. Возвращает *NULL*, если не удалось выделить память для нового объекта.

**\[PySlice\_GetIndices\]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`](https://python-all.ru/3.0/library/constants.html#None) и не удалось преобразовать его в целое число, в этом случае возвращается -1 с установленным исключением).

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

**\[PySlice\_GetIndicesEx\]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`](https://python-all.ru/3.0/c-api/slice.html#PySlice_GetIndices). Извлекает индексы start, stop и step из объекта среза *slice* в предположении последовательности длины *length* и сохраняет длину среза в *slicelength*. Индексы, выходящие за границы, обрезаются в соответствии с обработкой обычных срезов.

Возвращает 0 в случае успеха и -1 при ошибке с установкой исключения.
