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__
deGenericAlias
respectivamente. 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.GenericAlias
no Python.Adicionado na versão 3.9.