# Objetos de tipo

`PyTypeObject`

  A estrutura C dos objetos usados para descrever tipos embutidos.

PyObject* `PyType_Type`

  Este é o objeto de tipo para objetos tipo; é o mesmo objeto que `type` na camada Python.

int `PyType_Check`(PyObject *o)

  Return true if the object o is a type object, including instances of types derived from the standard type object. Return false in all other cases.

int `PyType_CheckExact`(PyObject *o)

  Return true if the object o is a type object, but not a subtype of the standard type object. Return false in all other cases.

unsigned int `PyType_ClearCache`()

  Limpa o cache de pesquisa interno. Retorna a marcação de versão atual.

unsigned long `PyType_GetFlags`(PyTypeObject* type)

  Retorna o membro `tp_flags` de type. Esta função deve ser usada principalmente com Py_LIMITED_API; os bits sinalizadores individuais têm garantia de estabilidade em todas as versões do Python, mas o acesso a `tp_flags` não faz parte da API limitada.

  Novo na versão 3.2.

  Alterado na versão 3.4: O tipo de retorno é agora um `unsigned long` em vez de um `long`.

void `PyType_Modified`(PyTypeObject *type)

  Invalida o cache de pesquisa interna para o tipo e todos os seus subtipos. Esta função deve ser chamada após qualquer modificação manual dos atributos ou classes bases do tipo.

int `PyType_HasFeature`(PyTypeObject *o, int feature)

  Return true if the type object o sets the feature feature. Type features are denoted by single bit flags.

int `PyType_IS_GC`(PyTypeObject *o)

  Retorna verdadeiro se o objeto tipo incluir suporte para o detector de ciclo; isso testa o sinalizador de tipo `Py_TPFLAGS_HAVE_GC`.

int `PyType_IsSubtype`(PyTypeObject *a, PyTypeObject *b)

  Retorna verdadeiro se a for um subtipo de b.

  Esta função só verifica pelos subtipos, o que significa que `__subclasscheck__()` não é chamado em b. Chame `PyObject_IsSubclass()` para fazer a mesma verificação que `issubclass()` faria.

PyObject* `PyType_GenericAlloc`(PyTypeObject *type, Py_ssize_t nitems)
  Return value: New reference.

  Generic handler for the `tp_alloc` slot of a type object. Use Python’s default memory allocation mechanism to allocate a new instance and initialize all its contents to NULL.

PyObject* `PyType_GenericNew`(PyTypeObject *type, PyObject *args, PyObject *kwds)
  Return value: New reference.

  Manipulador genérico para o slot `tp_new` de um objeto tipo. Cria uma nova instância usando o slot `tp_alloc` do tipo.

int `PyType_Ready`(PyTypeObject *type)

  Finaliza um objeto tipo. Isso deve ser chamado em todos os objetos tipo para finalizar sua inicialização. Esta função é responsável por adicionar slots herdados da classe base de um tipo. Retorna `0` em caso de sucesso, ou retorna `-1` e define uma exceção em caso de erro.

PyObject* `PyType_FromSpec`(PyType_Spec *spec)

  Creates and returns a heap type object from the spec passed to the function.

PyObject* `PyType_FromSpecWithBases`(PyType_Spec *spec, PyObject *bases)

  Creates and returns a heap type object from the spec. In addition to that, the created heap type contains all types contained by the bases tuple as base types. This allows the caller to reference other heap types as base types.

  Novo na versão 3.3.

void* `PyType_GetSlot`(PyTypeObject *type, int slot)

  Return the function pointer stored in the given slot. If the result is NULL, this indicates that either the slot is NULL, or that the function was called with invalid parameters. Callers will typically cast the result pointer into the appropriate function type.

  Novo na versão 3.4.