Alocar objetos na pilha

PyObject* _PyObject_New(PyTypeObject *type)
Return value: New reference.
PyVarObject* _PyObject_NewVar(PyTypeObject *type, Py_ssize_t size)
Return value: New reference.

Alterado na versão 2.5: Essa função usa um tipo int para size. Isto requer mudanças em seu código para suportar propriamete sistemas 64-bits.

void _PyObject_Del(PyObject *op)
PyObject* PyObject_Init(PyObject *op, PyTypeObject *type)
Return value: Borrowed reference.

Inicialize um objeto op recém alocado com seu tipo e sua referência inicial. Retorna o objeto incializado. Se type indicar no detector de lixo cíclico que o objeto participa, ele é adicionado ao grupo do detector de objetos observados. Outros campos do objeto não são afetados.

PyVarObject* PyObject_InitVar(PyVarObject *op, PyTypeObject *type, Py_ssize_t size)
Return value: Borrowed reference.

Isso faz tudo que PyObject_Init() faz, e também inicializa a informação de comprimento para um objeto tamanho-de-variável.

Alterado na versão 2.5: Essa função usa um tipo int para size. Isto requer mudanças em seu código para suportar propriamete sistemas 64-bits.

TYPE* PyObject_New(TYPE, PyTypeObject *type)
Return value: New reference.

Aloque um novo objeto Python usando a estrutura C digite TYPE and the Python objet type. Campos não definidos no cabeçalho do objeto Python não são inicializados; a contagem de referência do objeto será um deles. O tamanho da alocação de memória é determinado do campo tp_basicsize do objeto tipo.

TYPE* PyObject_NewVar(TYPE, PyTypeObject *type, Py_ssize_t size)
Return value: New reference.

Alocar um novo objeto Python usando o tipo de estrutura C TYPE e o tipo de objeto Python type. Campos não definidos pelo cabeçalho do objeto Python não são inicializados. A memória alocada permite a estrutura * TYPE * e os campos * size * do tamanho dado pelo campo: c: member: ~ PyTypeObject.tp_itemsize de * type *. Isto é útil para implementar objetos como tuplas, que são capazes de determinar seu tamanho em tempo de construção. Incorporando o array de campos dentro da mesma alocação diminuindo o numero de alocações, melhorando a eficiência de gerenciamento de memória.

Alterado na versão 2.5: Essa função usa um tipo int para size. Isto requer mudanças em seu código para suportar propriamete sistemas 64-bits.

void PyObject_Del(PyObject *op)

Libera memória alocada a um objeto usando PyObject_New() ou PyObject_NewVar(). Isso é normalmente chamado por tp_dealloc manipulador especificado no tipo do objeto. Os campos do objeto não devem ser acessados ​​após esta chamada, já que a memória não é mais um objeto Python válido.

PyObject* Py_InitModule(char *name, PyMethodDef *methods)
Return value: Borrowed reference.

Cria um novo objeto módulo baseado em um nome e em tabela de funções, retornando o novo objeto módulo.

Alterado na versão 2.3: Versões antigas de Python não suportam NULL como valor para argumentos de method.

PyObject* Py_InitModule3(char *name, PyMethodDef *methods, char *doc)
Return value: Borrowed reference.

Cria um novo objeto módulo baseado em um nome e em tabela de funções, retornando o novo objeto módulo. Se doc não é NULL, este será usado para definir a docstring para o módulo.

Alterado na versão 2.3: Versões antigas de Python não suportam NULL como valor para argumentos de method.

PyObject* Py_InitModule4(char *name, PyMethodDef *methods, char *doc, PyObject *self, int apiver)
Return value: Borrowed reference.

Cria um novo objeto módulo baseado em um nome e em tabela de funções, retornando o novo módulo objeto. Se doc não é NULL, este será usado para definir a docstring para o módulo. Se self não é NULL, este será passado para as funções do módulo(também NULL), como o primeiro parâmetro delas. (Isto foi adicionado como uma característica experimental, e não há usos conhecidos na versão atual do Python.) Para apiver, o único valor que deve ser passado é definido pela constante PYTHON_API_VERSION.

Nota

A maioria dos usos dessa função deve provavelmente usar o Py_InitModule3(); Apenas use isso se tiver a certeza de que precisa.

Alterado na versão 2.3: Versões antigas de Python não suportam NULL como valor para argumentos de method.

PyObject _Py_NoneStruct

Objeto o qual é visível em Python como None. Este poderá apenas ser acessado usando o Py_None macro, que valida um ponteiro para este objeto.