Objetos para indicaciones de tipado
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" de "GenericAlias" respectivamente. origin debe ser un PyTypeObject, y args puede ser un PyTupleObject o cualquier "PyObject". 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" de "GenericAlias" se construye de manera perezosa a partir de "args". En caso de falla, se levantará una excepción y retorna "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__", Py_GenericAlias, METH_O|METH_CLASS, "my_obj is generic over its contained type"}
...
}
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 a "types.GenericAlias" en Python.
Added in version 3.9.