Objetos función

Hay algunas funciones específicas para las funciones de Python.

PyFunctionObject

La estructura C utilizada para las funciones.

PyTypeObject PyFunction_Type

Esta es una instancia de PyTypeObject y representa el tipo función de Python. Está expuesto a los programadores de Python como types.FunctionType.

int PyFunction_Check(PyObject *o)

Retorna verdadero si o es un objeto función (tiene tipo PyFunction_Type). El parámetro no debe ser NULL. Esta función siempre finaliza con éxito.

PyObject* PyFunction_New(PyObject *code, PyObject *globals)
Return value: New reference.

Retorna un nuevo objeto función asociado con el objeto código code. globals debe ser un diccionario con las variables globales accesibles para la función.

El docstring y el nombre de la función se obtiene del objeto código. __module__ se obtiene de globals *. El argumento *defaults, annotations y closure se establecen en NULL. __qualname__ se establece en el mismo valor que el nombre de la función.

PyObject* PyFunction_NewWithQualName(PyObject *code, PyObject *globals, PyObject *qualname)
Return value: New reference.

Como PyFunction_New(), pero también permite configurar el atributo __qualname__ del objeto función. qualname debe ser un objeto unicode o NULL; si es NULL, el atributo __qualname__ se establece en el mismo valor que su atributo __name__.

Nuevo en la versión 3.3.

PyObject* PyFunction_GetCode(PyObject *op)
Return value: Borrowed reference.

Retorna el objeto código asociado con el objeto función op.

PyObject* PyFunction_GetGlobals(PyObject *op)
Return value: Borrowed reference.

Retorna el diccionario global asociado con el objeto función op.

PyObject* PyFunction_GetModule(PyObject *op)
Return value: Borrowed reference.

Retorna el atributo __module__ del objeto función op. Normalmente es una cadena de caracteres que contiene el nombre del módulo, pero se puede establecer en cualquier otro objeto mediante el código Python.

PyObject* PyFunction_GetDefaults(PyObject *op)
Return value: Borrowed reference.

Retorna los valores predeterminados del argumento del objeto función op. Esto puede ser una tupla de argumentos o NULL.

int PyFunction_SetDefaults(PyObject *op, PyObject *defaults)

Establece los valores predeterminados del argumento para el objeto función op. defaults deben ser Py_None o una tupla.

Lanza SystemError y retorna -1 en caso de error.

PyObject* PyFunction_GetClosure(PyObject *op)
Return value: Borrowed reference.

Retorna el cierre asociado con el objeto función op. Esto puede ser NULL o una tupla de objetos celda.

int PyFunction_SetClosure(PyObject *op, PyObject *closure)

Establece el cierre asociado con el objeto función op. cierre debe ser Py_None o una tupla de objetos celda.

Lanza SystemError y retorna -1 en caso de error.

PyObject *PyFunction_GetAnnotations(PyObject *op)
Return value: Borrowed reference.

Retorna las anotaciones del objeto función op. Este puede ser un diccionario mutable o NULL.

int PyFunction_SetAnnotations(PyObject *op, PyObject *annotations)

Establece las anotaciones para el objeto función op. annotations debe ser un diccionario o Py_None.

Lanza SystemError y retorna -1 en caso de error.