Nota

¡Ayúdanos a traducir la documentación oficial de Python al Español! Puedes encontrar más información en Como contribuir. Ayuda a acercar Python a más personas de habla hispana.

Objetos función

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

type 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 una referencia tomada (borrowed reference) al atributo __module__ del objeto función op. Puede ser NULL.

Éste es normalmente una cadena de caracteres que contiene el nombre del módulo, pero se puede establecer en cualquier otro objeto mediante 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.