Objeto tupla¶
-
PyTypeObject PyTuple_Type¶
- Parte da ABI Estável.
Esta instância de
PyTypeObject
representa o tipo tupla de Python; é o mesmo objeto quetuple
na camada Python.
-
int PyTuple_Check(PyObject *p)¶
Retorna verdadeiro se p é um objeto tupla ou uma instância de um subtipo do tipo tupla. Esta função sempre tem sucesso.
-
int PyTuple_CheckExact(PyObject *p)¶
Retorna verdadeiro se p é um objeto tupla, mas não uma instância de um subtipo do tipo tupla. Esta função sempre tem sucesso.
-
PyObject *PyTuple_New(Py_ssize_t len)¶
- Retorna valor: Nova referência. Parte da ABI Estável.
Return a new tuple object of size len, or
NULL
with an exception set on failure.
-
PyObject *PyTuple_Pack(Py_ssize_t n, ...)¶
- Retorna valor: Nova referência. Parte da ABI Estável.
Return a new tuple object of size n, or
NULL
with an exception set on failure. The tuple values are initialized to the subsequent n C arguments pointing to Python objects.PyTuple_Pack(2, a, b)
is equivalent toPy_BuildValue("(OO)", a, b)
.
-
Py_ssize_t PyTuple_Size(PyObject *p)¶
- Parte da ABI Estável.
Take a pointer to a tuple object, and return the size of that tuple. On error, return
-1
and with an exception set.
-
Py_ssize_t PyTuple_GET_SIZE(PyObject *p)¶
Like
PyTuple_Size()
, but without error checking.
-
PyObject *PyTuple_GetItem(PyObject *p, Py_ssize_t pos)¶
- Retorna valor: Referência emprestada. Parte da ABI Estável.
Retorna o objeto na posição pos na tupla apontada por p. Se pos estiver fora dos limites, retorna
NULL
e define uma exceçãoIndexError
.The returned reference is borrowed from the tuple p (that is: it is only valid as long as you hold a reference to p). To get a strong reference, use
Py_NewRef(PyTuple_GetItem(...))
orPySequence_GetItem()
.
-
PyObject *PyTuple_GET_ITEM(PyObject *p, Py_ssize_t pos)¶
- Retorna valor: Referência emprestada.
Como
PyTuple_GetItem()
, mas faz nenhuma verificação de seus argumentos.
-
PyObject *PyTuple_GetSlice(PyObject *p, Py_ssize_t low, Py_ssize_t high)¶
- Retorna valor: Nova referência. Parte da ABI Estável.
Return the slice of the tuple pointed to by p between low and high, or
NULL
with an exception set on failure.This is the equivalent of the Python expression
p[low:high]
. Indexing from the end of the tuple is not supported.
-
int PyTuple_SetItem(PyObject *p, Py_ssize_t pos, PyObject *o)¶
- Parte da ABI Estável.
Insere uma referência ao objeto o na posição pos da tupla apontada por p. Retorna
0
em caso de sucesso. Se pos estiver fora dos limites, retorne-1
e define uma exceçãoIndexError
.Nota
Esta função “rouba” uma referência a o e descarta uma referência a um item já na tupla na posição afetada.
-
void PyTuple_SET_ITEM(PyObject *p, Py_ssize_t pos, PyObject *o)¶
Como
PyTuple_SetItem()
, mas não verifica erros e deve apenas ser usado para preencher novas tuplas.A verificação de limites é realizada como uma asserção se o Python for construído em modo de depuração ou
com asserções
.Nota
Esta função “rouba” uma referência para o e, ao contrário de
PyTuple_SetItem()
, não descarta uma referência para nenhum item que esteja sendo substituído; qualquer referência na tupla na posição pos será perdida.Aviso
This macro should only be used on tuples that are newly created. Using this macro on a tuple that is already in use (or in other words, has a refcount > 1) could lead to undefined behavior.
-
int _PyTuple_Resize(PyObject **p, Py_ssize_t newsize)¶
Pode ser usado para redimensionar uma tupla. newsize será o novo comprimento da tupla. Como as tuplas são supostamente imutáveis, isso só deve ser usado se houver apenas uma referência ao objeto. Não use isto se a tupla já for conhecida por alguma outra parte do código. A tupla sempre aumentará ou diminuirá no final. Pense nisso como destruir a tupla antiga e criar uma nova, mas com mais eficiência. Retorna
0
em caso de sucesso. O código do cliente nunca deve presumir que o valor resultante de*p
será o mesmo de antes de chamar esta função. Se o objeto referenciado por*p
for substituído, o*p
original será destruído. Em caso de falha, retorna-1
e define*p
paraNULL
, e levantaMemoryError
ouSystemError
.
Objetos sequência de estrutura¶
Objetos sequência de estrutura são o equivalente em C dos objetos namedtuple()
, ou seja, uma sequência cujos itens também podem ser acessados por meio de atributos. Para criar uma sequência de estrutura, você primeiro precisa criar um tipo de sequência de estrutura específico.
-
PyTypeObject *PyStructSequence_NewType(PyStructSequence_Desc *desc)¶
- Retorna valor: Nova referência. Parte da ABI Estável.
Cria um novo tipo de sequência de estrutura a partir dos dados em desc, descrito abaixo. Instâncias do tipo resultante podem ser criadas com
PyStructSequence_New()
.Return
NULL
with an exception set on failure.
-
void PyStructSequence_InitType(PyTypeObject *type, PyStructSequence_Desc *desc)¶
Inicializa um tipo de sequência de estrutura type de desc no lugar.
-
int PyStructSequence_InitType2(PyTypeObject *type, PyStructSequence_Desc *desc)¶
Like
PyStructSequence_InitType()
, but returns0
on success and-1
with an exception set on failure.Adicionado na versão 3.4.
-
type PyStructSequence_Desc¶
- Parte da ABI Estável (incluindo todos os membros).
Contém as metainformações de um tipo de sequência de estrutura a ser criado.
-
const char *name¶
Fully qualified name of the type; null-terminated UTF-8 encoded. The name must contain the module name.
-
const char *doc¶
Pointer to docstring for the type or
NULL
to omit.
-
PyStructSequence_Field *fields¶
Pointer to
NULL
-terminated array with field names of the new type.
-
int n_in_sequence¶
Number of fields visible to the Python side (if used as tuple).
-
const char *name¶
-
type PyStructSequence_Field¶
- Parte da ABI Estável (incluindo todos os membros).
Describes a field of a struct sequence. As a struct sequence is modeled as a tuple, all fields are typed as PyObject*. The index in the
fields
array of thePyStructSequence_Desc
determines which field of the struct sequence is described.-
const char *name¶
Name for the field or
NULL
to end the list of named fields, set toPyStructSequence_UnnamedField
to leave unnamed.
-
const char *doc¶
Field docstring or
NULL
to omit.
-
const char *name¶
-
const char *const PyStructSequence_UnnamedField¶
- Parte da ABI Estável desde a versão 3.11.
Valor especial para um nome de campo para deixá-lo sem nome.
Alterado na versão 3.9: O tipo foi alterado de
char *
.
-
PyObject *PyStructSequence_New(PyTypeObject *type)¶
- Retorna valor: Nova referência. Parte da ABI Estável.
Cria um instância de type, que deve ser criada com
PyStructSequence_NewType()
.Return
NULL
with an exception set on failure.
-
PyObject *PyStructSequence_GetItem(PyObject *p, Py_ssize_t pos)¶
- Retorna valor: Referência emprestada. Parte da ABI Estável.
Return the object at position pos in the struct sequence pointed to by p.
A verificação de limites é realizada como uma asserção se o Python for construído em modo de depuração ou
com asserções
.
-
PyObject *PyStructSequence_GET_ITEM(PyObject *p, Py_ssize_t pos)¶
- Retorna valor: Referência emprestada.
Alias to
PyStructSequence_GetItem()
.Alterado na versão 3.13: Now implemented as an alias to
PyStructSequence_GetItem()
.
-
void PyStructSequence_SetItem(PyObject *p, Py_ssize_t pos, PyObject *o)¶
- Parte da ABI Estável.
Define o campo no índice pos da sequência de estrutura p para o valor o. Como
PyTuple_SET_ITEM()
, isto só deve ser usado para preencher novas instâncias.A verificação de limites é realizada como uma asserção se o Python for construído em modo de depuração ou
com asserções
.Nota
Esta função “rouba” uma referência a o.
-
void PyStructSequence_SET_ITEM(PyObject *p, Py_ssize_t *pos, PyObject *o)¶
Alias to
PyStructSequence_SetItem()
.Alterado na versão 3.13: Now implemented as an alias to
PyStructSequence_SetItem()
.