Protocolo de sequência¶
-
int
PySequence_Check
(PyObject *o)¶ - Part of the Stable ABI.
Return
1
if the object provides the sequence protocol, and0
otherwise. Note that it returns1
for Python classes with a__getitem__()
method, unless they aredict
subclasses, since in general it is impossible to determine what type of keys the class supports. This function always succeeds.
-
Py_ssize_t
PySequence_Size
(PyObject *o)¶ -
Py_ssize_t
PySequence_Length
(PyObject *o)¶ - Part of the Stable ABI.
Retorna o número de objetos na sequência o em caso de sucesso, ou
-1
em caso de falha. Equivale à expressão Pythonlen(o)
.
-
PyObject *
PySequence_Concat
(PyObject *o1, PyObject *o2)¶ - Retorna valor: Nova referência. Part of the Stable ABI.
Retorna a concatenação de o1 e o2 em caso de sucesso, e
NULL
em caso de falha. Equivale à expressão Pythono1 + o2
.
-
PyObject *
PySequence_Repeat
(PyObject *o, Py_ssize_t count)¶ - Retorna valor: Nova referência. Part of the Stable ABI.
Retorna o resultado da repetição do objeto sequência o count vezes ou
NULL
em caso de falha. Equivale à expressão Pythono * count
.
-
PyObject *
PySequence_InPlaceConcat
(PyObject *o1, PyObject *o2)¶ - Retorna valor: Nova referência. Part of the Stable ABI.
Retorna a concatenação de o1 e o2 em caso de sucesso, e
NULL
em caso de falha. A operação é feita localmente se o1 permitir. Equivale à expressão Pythono1 += o2
.
-
PyObject *
PySequence_InPlaceRepeat
(PyObject *o, Py_ssize_t count)¶ - Retorna valor: Nova referência. Part of the Stable ABI.
Retorna o resultado da repetição do objeto sequência o count vezes ou
NULL
em caso de falha. A operação é feita localmente se o permitir. Equivale à expressão Pythono *= count
.
-
PyObject *
PySequence_GetItem
(PyObject *o, Py_ssize_t i)¶ - Retorna valor: Nova referência. Part of the Stable ABI.
Retorna o elemento i de o ou
NULL
em caso de falha. Equivale à expressão Pythono[i]
.
-
PyObject *
PySequence_GetSlice
(PyObject *o, Py_ssize_t i1, Py_ssize_t i2)¶ - Retorna valor: Nova referência. Part of the Stable ABI.
Retorna a fatia do objeto sequência o entre i1 e i2, ou
NULL
em caso de falha. Equivale à expressão Pythono[i1:i2]
.
-
int
PySequence_SetItem
(PyObject *o, Py_ssize_t i, PyObject *v)¶ - Part of the Stable ABI.
Atribui o objeto v ao elemento i de o. Levanta uma exceção e retorna
-1
em caso de falha; retorna0
em caso de sucesso. Esta função não rouba uma referência a v. Equivale à instrução Pythono[i]=v
.Se v for
NULL
, o elemento será removido, mas este recurso foi descontinuado em favor do uso dePySequence_DelItem()
.
-
int
PySequence_DelItem
(PyObject *o, Py_ssize_t i)¶ - Part of the Stable ABI.
Exclui o elemento i do objeto o. Retorna
-1
em caso de falha. Equivale à instrução Pythondel o[i]
.
-
int
PySequence_SetSlice
(PyObject *o, Py_ssize_t i1, Py_ssize_t i2, PyObject *v)¶ - Part of the Stable ABI.
Atribui o objeto sequência v à fatia no objeto sequência o de i1 a i2. Equivale à instrução Python
o[i1:i2] = v
.
-
int
PySequence_DelSlice
(PyObject *o, Py_ssize_t i1, Py_ssize_t i2)¶ - Part of the Stable ABI.
Exclui a fatia no objeto sequência o de i1 a i2. Retorna
-1
em caso de falha. Equivale à instrução Pythondel o[i1:i2]
.
-
Py_ssize_t
PySequence_Count
(PyObject *o, PyObject *value)¶ - Part of the Stable ABI.
Retorna a quantidade de ocorrências de value em o, isto é, retorna a quantidade de chaves onde
o[key] == value
. Em caso de falha, retorna-1
. Equivale à expressão Pythono.count(value)
.
-
int
PySequence_Contains
(PyObject *o, PyObject *value)¶ - Part of the Stable ABI.
Determina se o contém value. Se um item em o for igual a value, retorna
1
, senão, retorna0
. Em caso de erro, retorna-1
. Equivale à expressão Pythonvalue in o
.
-
Py_ssize_t
PySequence_Index
(PyObject *o, PyObject *value)¶ - Part of the Stable ABI.
Retorna o primeiro índice i tal que
o[i] == value
. Em caso de erro, retorna-1
. Equivale à expressão Pythono.index(value)
.
-
PyObject *
PySequence_List
(PyObject *o)¶ - Retorna valor: Nova referência. Part of the Stable ABI.
Retorna um objeto lista com o mesmo conteúdo da sequência ou iterável o, ou
NULL
em caso de falha. Garante-se que a lista retornada será nova. Equivale à expressão Pythonlist(o)
.
-
PyObject *
PySequence_Tuple
(PyObject *o)¶ - Retorna valor: Nova referência. Part of the Stable ABI.
Retorna o objeto tupla com o mesmo conteúdo da sequência ou iterável o, ou
NULL
em caso de falha. Se o for uma tupla, retorna uma nova referência. Senão, uma tupla será construída com o conteúdo apropriado. Equivale à expressão Pythontuple(o)
.
-
PyObject *
PySequence_Fast
(PyObject *o, const char *m)¶ - Retorna valor: Nova referência. Part of the Stable ABI.
Retorna a sequência ou iterável o como um objeto usável por outras funções da família
PySequence_Fast*
. Se o objeto não for uma sequência ou iterável, levantaTypeError
com m sendo o texto da mensagem. RetornaNULL
em caso de falha.As funções
PySequence_Fast*
têm esse nome porque presumem que o é umPyTupleObject
ou umPyListObject
e porque acessam os campos de dados de o diretamente.Como detalhe de implementação de CPython, se o já for uma sequência ou lista, ele será retornado.
-
Py_ssize_t
PySequence_Fast_GET_SIZE
(PyObject *o)¶ Retorna o comprimento de o, presumindo que o foi retornado por
PySequence_Fast()
e que o não sejaNULL
. O tamanho também pode ser obtido ao chamarPySequence_Size()
em o, masPySequence_Fast_GET_SIZE()
é mais rápida, ao supor que o é uma lista ou tupla.
-
PyObject *
PySequence_Fast_GET_ITEM
(PyObject *o, Py_ssize_t i)¶ - Retorna valor: Referência emprestada.
Retorna o elemento i de o, presumindo que o foi retornado por
PySequence_Fast()
, que o sejaNULL
, e que i esteja nos limites.
-
PyObject **
PySequence_Fast_ITEMS
(PyObject *o)¶ Retorna o vetor subjacente de ponteiros PyObject. Presume que o foi retornado por
PySequence_Fast()
e que o não sejaNULL
.Note que, se uma lista for redimensionada, a realocação poderá reposicionar o vetor de itens. Portanto, só use o ponteiro de vetor subjacente em contextos onde a sequência não mudará.
-
PyObject *
PySequence_ITEM
(PyObject *o, Py_ssize_t i)¶ - Retorna valor: Nova referência.
Retorna o elemento i de o, ou
NULL
em caso de falha. É uma forma mais rápida dePySequence_GetItem()
, mas sem verificar sePySequence_Check()
em o é verdadeiro e sem ajustar índices negativos.