Объекты слайсов
-
PyTypeObject PySlice_Type -
Часть Стабильной ABI.
Объект типа для объектов слайсов. Это то же, что и
sliceв слое Python.
-
int PySlice_Check(PyObject *ob) -
Возвращает true, если ob — объект слайса; ob не должен быть
NULL. Эта функция всегда выполняется успешно.
-
PyObject *PySlice_New(PyObject *start, PyObject *stop, PyObject *step) -
Значение возврата: новая ссылка. Часть Стабильной ABI.
Возвращает новый объект слайса с заданными значениями. Параметры start, stop и step используются в качестве значений атрибутов объекта слайса с теми же именами. Любое из значений может быть
NULL, в этом случае для соответствующего атрибута будет использованоNone.Возвращает
NULLс установленным исключением, если новый объект не был выделен.
-
int PySlice_GetIndices(PyObject *slice, Py_ssize_t length, Py_ssize_t *start, Py_ssize_t *stop, Py_ssize_t *step) -
Часть Стабильной ABI.
Извлекает индексы начала, конца и шага из объекта слайса slice, предполагая последовательность длиной length. Индексы, большие, чем length, обрабатываются как ошибки.
Возвращает
0при успешном выполнении и-1при ошибке без установленного исключения (если один из индексов не былNoneи не удалось преобразовать его в целое число, в этом случае возвращается-1с установленным исключением).Вероятно, вам не нужно использовать эту функцию.
Изменено в версии 3.2: Тип параметра для параметра slice был
PySliceObject*ранее.
-
int PySlice_GetIndicesEx(PyObject *slice, Py_ssize_t length, Py_ssize_t *start, Py_ssize_t *stop, Py_ssize_t *step, Py_ssize_t *slicelength) -
Часть Стабильной ABI.
Используемый аналог
PySlice_GetIndices(). Извлекает индексы начала, конца и шага из объекта слайса slice, предполагая последовательность длиной length, и сохраняет длину слайса в slicelength. Индексы, выходящие за пределы, обрезаются так же, как и при использовании обычных слайсов.Возвращает
0при успешном выполнении и-1при ошибке с установленным исключением.Примечание
Эта функция считается небезопасной для изменяемых последовательностей. Ее вызов следует заменить комбинацией
PySlice_Unpack()иPySlice_AdjustIndices(), гдеif (PySlice_GetIndicesEx(slice, length, &start, &stop, &step, &slicelength) < 0) { // return error }заменяется на
if (PySlice_Unpack(slice, &start, &stop, &step) < 0) { // return error } slicelength = PySlice_AdjustIndices(length, &start, &stop, step);Изменено в версии 3.2: Тип параметра для параметра slice был
PySliceObject*ранее.Изменено в версии 3.6.1: Если
Py_LIMITED_APIне установлен или установлен на значение между0x03050400и0x03060000(не включая) или0x03060100или вышеPySlice_GetIndicesEx()реализуется как макрос с использованиемPySlice_Unpack()иPySlice_AdjustIndices(). Аргументы start, stop и step вычисляются более одного раза.Устаревшая начиная с версии 3.6.1: Если
Py_LIMITED_APIустановлен на значение меньше0x03050400или между0x03060000и0x03060100(не включая)PySlice_GetIndicesEx()является устаревшей функцией.
-
int PySlice_Unpack(PyObject *slice, Py_ssize_t *start, Py_ssize_t *stop, Py_ssize_t *step) -
Часть Стабильной ABI с версии 3.7.
Извлечение значений членов start, stop и step из объекта слайса как целочисленных значений C. Значения, большие, чем
PY_SSIZE_T_MAX, автоматически уменьшаются доPY_SSIZE_T_MAX, значения start и stop, меньшие, чемPY_SSIZE_T_MIN, автоматически увеличиваются доPY_SSIZE_T_MIN, а значения step, меньшие, чем-PY_SSIZE_T_MAX, автоматически увеличиваются до-PY_SSIZE_T_MAX.Возвращает
-1с установленным исключением при ошибке,0при успешном выполнении.Добавлена в версии 3.6.1.
-
Py_ssize_t PySlice_AdjustIndices(Py_ssize_t length, Py_ssize_t *start, Py_ssize_t *stop, Py_ssize_t step) -
Часть Стабильной ABI с версии 3.7.
Корректировка индексов начала/конца слайса, предполагая последовательность заданной длины. Индексы, выходящие за пределы, обрезаются так же, как и при использовании обычных слайсов.
Возвращает длину слайса. Всегда выполняется успешно. Не вызывает код Python.
Добавлена в версии 3.6.1.
Объект Эллипсис
-
PyObject *Py_Ellipsis -
Объект Python
Ellipsis. Этот объект не имеет методов. Как иPy_None, это бессмертный одиночный объект.Изменено в версии 3.12:
Py_Ellipsisявляется бессмертным.
© 2001–2024 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/3.12/c-api/slice.html