Objetos para indicaciones de tipado¶
Se proporcionan varios tipos incorporados para indicaciones de tipado. Actualmente existen dos tipos – GenericAlias y Union. Solo GenericAlias es expuesto a C.
-
PyObject *
Py_GenericAlias(PyObject *origin, PyObject *args)¶ - Part of the Stable ABI since version 3.9.
Crea un objeto GenericAlias. Equivalente a llamar la clase de Python
types.GenericAlias. Los argumentos origin y args configuran los atributos__origin__y__args__deGenericAliasrespectivamente. origin debe ser un PyTypeObject*, y args puede ser un PyTupleObject* o cualquierPyObject*. Si el valor de args no es una tupla, un 1-tupla es automáticamente construida y__args__es configurado como(args,). Para los argumentos se realiza un chequeo mínimo, de esta manera la función tendrá éxito incluso si origin no es un tipo. El atributo__parameters__deGenericAliases construido de forma diferida a partir de__args__. Si existe una falla, se levantará una excepción y se retornaráNULL.Aquí hay un ejemplo sobre cómo hacer un tipo de extensión genérica:
... static PyMethodDef my_obj_methods[] = { // Other methods. ... {"__class_getitem__", (PyCFunction)Py_GenericAlias, METH_O|METH_CLASS, "See PEP 585"} ... }
Ver también
El método del modelo de datos
__class_getitem__().Nuevo en la versión 3.9.
-
PyTypeObject
Py_GenericAliasType¶ - Part of the Stable ABI since version 3.9.
El tipo en C del objeto retornado por
Py_GenericAlias(). Equivalente atypes.GenericAliasen Python.Nuevo en la versión 3.9.