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)¶ - Part of the Stable ABI since version 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 umPyTypeObject*, e args pode ser umPyTupleObject*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[] = { // 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¶ - Part of the Stable ABI since version 3.9.
O tipo C do objeto retornado por
Py_GenericAlias(). Equivalente atypes.GenericAliasno Python.Novo na versão 3.9.