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 establecen los atributos__origin__
y__args__
deGenericAlias
respectivamente. origin debe ser un PyTypeObject*, y args puede ser un PyTupleObject* o cualquierPyObject*
. Si args no es una tupla, se construye automáticamente una tupla de un elemento y__args__
se establece como(args,)
. Se realiza una verificación mínima para los argumentos, por lo que la función tendrá éxito incluso si origin no es un tipo. El atributo__parameters__
deGenericAlias
se construye de manera perezosa a partir de__args__
. En caso de falla, se levantará una excepción y retornaNULL
.Aquí hay un ejemplo sobre cómo hacer un tipo de extensión genérica:
static PyMethodDef my_obj_methods[] = { // Otros Métodos. ... {"__class_getitem__", Py_GenericAlias, METH_O|METH_CLASS, "Ver PEP 585"} ... }
Ver también
El método del modelo de datos
__class_getitem__()
.Added in version 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.GenericAlias
en Python.Added in version 3.9.