Objetos Slice¶
-
PyTypeObject PySlice_Type¶
- Parte da ABI Estável.
Tipo de objeto para objetos fatia. Isso é o mesmo que
slice
na camada Python.
-
int PySlice_Check(PyObject *ob)¶
Retorna true se ob for um objeto fatia; ob não deve ser
NULL
. Esta função sempre tem sucesso.
-
PyObject *PySlice_New(PyObject *start, PyObject *stop, PyObject *step)¶
- Retorna valor: Nova referência. Parte da ABI Estável.
Return a new slice object with the given values. The start, stop, and step parameters are used as the values of the slice object attributes of the same names. Any of the values may be
NULL
, in which case theNone
will be used for the corresponding attribute.Return
NULL
with an exception set if the new object could not be allocated.
-
int PySlice_GetIndices(PyObject *slice, Py_ssize_t length, Py_ssize_t *start, Py_ssize_t *stop, Py_ssize_t *step)¶
- Parte da ABI Estável.
Recupera os índices de início, parada e intermediário do objeto fatia slice, presumindo uma sequência de comprimento length. Trata índices maiores que length como erros.
Retorna
0
em caso de sucesso e-1
em caso de erro sem exceção definida (a menos que um dos índices não fosseNone
e falhou ao ser convertido para um inteiro, neste caso-1
é retornado com uma exceção definida).Você provavelmente não deseja usar esta função.
Alterado na versão 3.2: O tipo de parâmetro para o parâmetro slice era antes de
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)¶
- Parte da ABI Estável.
Substituição utilizável para
PySlice_GetIndices()
. Recupera os índices de início, parada e intermediário do objeto fatia slice presumindo uma sequência de comprimento length e armazena o comprimento da fatia em slicelength. Índices fora dos limites são cortados de maneira consistente com o tratamento de fatias normais.Return
0
on success and-1
on error with an exception set.Nota
Esta função não é considerada segura para sequências redimensionáveis. Sua invocação deve ser substituída por uma combinação de
PySlice_Unpack()
ePySlice_AdjustIndices()
sendoif (PySlice_GetIndicesEx(slice, length, &start, &stop, &step, &slicelength) < 0) { // return error }
substituído por
if (PySlice_Unpack(slice, &start, &stop, &step) < 0) { // return error } slicelength = PySlice_AdjustIndices(length, &start, &stop, step);
Alterado na versão 3.2: O tipo de parâmetro para o parâmetro slice era antes de
PySliceObject*
.Alterado na versão 3.6.1: Se
Py_LIMITED_API
não estiver definido ou estiver definido com um valor entre0x03050400
e0x03060000
(não incluso) ou0x03060100
ou mais alto,PySlice_GetIndicesEx()
é implementado como uma macro usandoPySlice_Unpack()
ePySlice_AdjustIndices()
. Os argumentos start, stop e step são avaliados mais de uma vez.Obsoleto desde a versão 3.6.1: Se
Py_LIMITED_API
estiver definido para um valor menor que0x03050400
ou entre0x03060000
e0x03060100
(não incluso),PySlice_GetIndicesEx()
é uma função descontinuada.
-
int PySlice_Unpack(PyObject *slice, Py_ssize_t *start, Py_ssize_t *stop, Py_ssize_t *step)¶
- Parte da ABI Estável desde a versão 3.7.
Extrai os membros de dados de início, parada e intermediário de um objeto fatia como C inteiros. Reduz silenciosamente os valores maiores do que
PY_SSIZE_T_MAX
paraPY_SSIZE_T_MAX
, aumenta silenciosamente os valores de início e parada menores quePY_SSIZE_T_MIN
paraPY_SSIZE_T_MIN
, e silenciosamente aumenta os valores de intermediário menores que-PY_SSIZE_T_MAX
para-PY_SSIZE_T_MAX
.Return
-1
with an exception set on error,0
on success.Adicionado na versão 3.6.1.
-
Py_ssize_t PySlice_AdjustIndices(Py_ssize_t length, Py_ssize_t *start, Py_ssize_t *stop, Py_ssize_t step)¶
- Parte da ABI Estável desde a versão 3.7.
Ajusta os índices de fatias inicial/final presumindo uma sequência do comprimento especificado. Índices fora dos limites são cortados de maneira consistente com o tratamento de fatias normais.
Retorna o comprimento da fatia. Sempre bem-sucedido. Não chama o código Python.
Adicionado na versão 3.6.1.
Objeto Ellipsis¶
-
PyObject *Py_Ellipsis¶
O objeto Python
Ellipsis
. Este objeto não tem métodos. ComoPy_None
, é um objeto singleton imortal.Alterado na versão 3.12:
Py_Ellipsis
é imortal.