# Objetos de indicação de tipos

Vários tipos embutidos para indicação de tipos são fornecidos. Apenas GenericAlias ​​ é exposto a C.

PyObject* `Py_GenericAlias`(PyObject *origin, PyObject *args)

  Cria um objeto GenericAlias ​​. Equivalente a chamar a classe Python `types.GenericAlias`. Os argumentos origin e args definem os atributos `__origin__` e `__args__` de `GenericAlias` respectivamente. origin deve ser um `PyTypeObject*`, e args pode ser um `PyTupleObject*` ou qualquer `PyObject*`. Se args passado não for uma tupla, uma tupla de 1 elemento é construída automaticamente e `__args__` é definido como `(args,)`. A verificação mínima é feita para os argumentos, então a função terá sucesso mesmo se origin não for um tipo. O atributo `__parameters__` de `GenericAlias` é construído lentamente a partir de `__args__`. Em caso de falha, uma exceção é levantada e `NULL` é retornado.

  Aqui está um exemplo de como tornar um tipo de extensão genérico:

      ...
      static PyMethodDef my_obj_methods[] = {
          // Other methods.
          ...
          {"__class_getitem__", (PyCFunction)Py_GenericAlias, METH_O|METH_CLASS, "See PEP 585"}
          ...
      }

  Ver também

  O método de modelo de dados `__class_getitem__()`.

  Novo na versão 3.9.

PyTypeObject `Py_GenericAliasType`

  O tipo C do objeto retornado por `Py_GenericAlias()`. Equivalente a `types.GenericAlias` no Python.

  Novo na versão 3.9.