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__
deGenericAlias
respectivamente. 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
¶ O tipo C do objeto retornado por
Py_GenericAlias()
. Equivalente atypes.GenericAlias
no Python.Novo na versão 3.9.