Objetos de indicação de tipos¶
São fornecidos vários tipos embutidos para sugestão de tipo. Atualmente, dois tipos existem – GenericAlias e Union. Apenas GenericAlias está exposto ao C.
-
PyObject *Py_GenericAlias(PyObject *origin, PyObject *args)¶
- Parte da ABI Estável desde a versão 3.9.
Cria um objeto GenericAlias. Equivalente a chamar a classe Python
types.GenericAlias. Os argumentos origin e args definem os atributos__origin__e__args__deGenericAliasrespectivamente. origin deve ser um PyTypeObject*, e args pode ser um PyTupleObject* ou qualquerPyObject*. 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__deGenericAliasé construído lentamente a partir de__args__. Em caso de falha, uma exceção é levantada eNULLé retornado.Aqui está um exemplo de como tornar um tipo de extensão genérico:
... static PyMethodDef my_obj_methods[] = { // Outros métodos. ... {"__class_getitem__", Py_GenericAlias, METH_O|METH_CLASS, "Veja PEP 585"} ... }
Ver também
O método de modelo de dados
__class_getitem__().Adicionado na versão 3.9.
-
PyTypeObject Py_GenericAliasType¶
- Parte da ABI Estável desde a versão 3.9.
O tipo C do objeto retornado por
Py_GenericAlias(). Equivalente atypes.GenericAliasno Python.Adicionado na versão 3.9.