Objeto tupla¶
-
PyTypeObject
PyTuple_Type¶ Esta instância de
PyTypeObjectrepresenta o tipo tupla de Python; é o mesmo objeto quetuplena camada Python.
-
int
PyTuple_Check(PyObject *p)¶ Devolve verdadeiro se p é um objeto tupla ou uma instância de um subtipo do tipo tupla.
-
int
PyTuple_CheckExact(PyObject *p)¶ Devolve verdadeiro se p é um objeto tupla, mas não uma instância de um subtipo do tipo tupla.
-
PyObject*
PyTuple_New(Py_ssize_t len)¶ - Return value: New reference.
Retorna um novo objeto tupla de tamanho len, ou
NULLem caso de falha.
-
PyObject*
PyTuple_Pack(Py_ssize_t n, ...)¶ - Return value: New reference.
Retorna um novo objeto tupla de tamanho n, ou
NULLem caso de falha. Os valores da tupla são inicializados para os n argumentos C subsequentes apontando para objetos Python.`PyTuple_Pack(2, a, b)é equivalente aPy_BuildValue("(OO)", a, b).
-
Py_ssize_t
PyTuple_Size(PyObject *p)¶ Pega um ponteiro para um objeto tupla e retorna o tamanho dessa tupla.
-
Py_ssize_t
PyTuple_GET_SIZE(PyObject *p)¶ Retorna o tamanho da tupla p, que deve ser diferente de
NULLe apontar para uma tupla; nenhuma verificação de erro é executada.
-
PyObject*
PyTuple_GetItem(PyObject *p, Py_ssize_t pos)¶ - Return value: Borrowed reference.
Retorna o objeto na posição pos na tupla apontada por p. Se pos estiver fora dos limites, retorna
NULLe define uma exceçãoIndexError.
-
PyObject*
PyTuple_GET_ITEM(PyObject *p, Py_ssize_t pos)¶ - Return value: Borrowed reference.
Como
PyTuple_GetItem(), mas faz nenhuma verificação de seus argumentos.
-
PyObject*
PyTuple_GetSlice(PyObject *p, Py_ssize_t low, Py_ssize_t high)¶ - Return value: New reference.
Retorna a fatia da tupla apontada por p entre low (baixo) e high (alto), ou
NULLem caso de falha. Este é o equivalente da expressão Pythonp[low:high]. A indexação do final da lista não é suportada.
-
int
PyTuple_SetItem(PyObject *p, Py_ssize_t pos, PyObject *o)¶ Insere uma referência ao objeto o na posição pos da tupla apontada por p. Retorna
0em caso de sucesso. Se pos estiver fora dos limites, retorne-1e 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.Nota
Esta macro “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.
-
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
0em caso de sucesso. O código do cliente nunca deve presumir que o valor resultante de*pserá o mesmo de antes de chamar esta função. Se o objeto referenciado por*pfor substituído, o*poriginal será destruído. Em caso de falha, retorna-1e define*pparaNULL, e levantaMemoryErrorouSystemError.
-
int
PyTuple_ClearFreeList()¶ Limpe a lista livre. Retorna o número total de itens liberados.
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)¶ - Return value: New reference.
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().
-
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)¶ O mesmo que
PyStructSequence_InitType, mas retorna0em caso de sucesso e-1em caso de falha.Novo na versão 3.4.
-
PyStructSequence_Desc¶ Contém as metainformações de um tipo de sequência de estrutura a ser criado.
Campo
Tipo em C
Significado
nameconst char *nome do tipo sequência de estrutura
docconst char *ponteiro para docstring para o tipo ou
NULLpara omitirfieldsPyStructSequence_Field *ponteiro para um vetor terminado em
NULLcom nomes de campos do novo tipon_in_sequenceintnúmero de campos visíveis para o lado Python (se usado como tupla)
-
PyStructSequence_Field¶ Descreve um campo de uma sequência de estrutura. Como uma sequência de estrutura é modelada como uma tupla, todos os campos são digitados como
PyObject *. O índice no vetorfieldsdoPyStructSequence_Descdetermina qual campo da sequência de estrutura é descrito.Campo
Tipo em C
Significado
nameconst char *nome do campo ou
NULLpara terminar a lista de campos nomeados; definida paraPyStructSequence_UnnamedFieldpara deixar sem nomedocconst char *campo docstring ou
NULLpara omitir
-
char*
PyStructSequence_UnnamedField¶ Valor especial para um nome de campo para deixá-lo sem nome.
-
PyObject*
PyStructSequence_New(PyTypeObject *type)¶ - Return value: New reference.
Cria um instância de type, que deve ser criada com
PyStructSequence_NewType().
-
PyObject*
PyStructSequence_GetItem(PyObject *p, Py_ssize_t pos)¶ - Return value: Borrowed reference.
Retorna o objeto na posição pos na sequência de estrutura apontada por p. Nenhuma verificação de limites é executada.
-
PyObject*
PyStructSequence_GET_ITEM(PyObject *p, Py_ssize_t pos)¶ - Return value: Borrowed reference.
Macro equivalente de
PyStructSequence_GetItem().
-
void
PyStructSequence_SetItem(PyObject *p, Py_ssize_t pos, PyObject *o)¶ 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.Nota
Esta função “rouba” uma referência a o.
-
void
PyStructSequence_SET_ITEM(PyObject *p, Py_ssize_t *pos, PyObject *o)¶ Macro equivalente de
PyStructSequence_SetItem().Nota
Esta função “rouba” uma referência a o.