Home | History | Annotate | Download | only in c-api
      1 .. highlightlang:: c
      2 
      3 .. _function-objects:
      4 
      5 Function Objects
      6 ----------------
      7 
      8 .. index:: object: function
      9 
     10 There are a few functions specific to Python functions.
     11 
     12 
     13 .. c:type:: PyFunctionObject
     14 
     15    The C structure used for functions.
     16 
     17 
     18 .. c:var:: PyTypeObject PyFunction_Type
     19 
     20    .. index:: single: MethodType (in module types)
     21 
     22    This is an instance of :c:type:`PyTypeObject` and represents the Python function
     23    type.  It is exposed to Python programmers as ``types.FunctionType``.
     24 
     25 
     26 .. c:function:: int PyFunction_Check(PyObject *o)
     27 
     28    Return true if *o* is a function object (has type :c:data:`PyFunction_Type`).
     29    The parameter must not be *NULL*.
     30 
     31 
     32 .. c:function:: PyObject* PyFunction_New(PyObject *code, PyObject *globals)
     33 
     34    Return a new function object associated with the code object *code*. *globals*
     35    must be a dictionary with the global variables accessible to the function.
     36 
     37    The function's docstring, name and *__module__* are retrieved from the code
     38    object, the argument defaults and closure are set to *NULL*.
     39 
     40 
     41 .. c:function:: PyObject* PyFunction_GetCode(PyObject *op)
     42 
     43    Return the code object associated with the function object *op*.
     44 
     45 
     46 .. c:function:: PyObject* PyFunction_GetGlobals(PyObject *op)
     47 
     48    Return the globals dictionary associated with the function object *op*.
     49 
     50 
     51 .. c:function:: PyObject* PyFunction_GetModule(PyObject *op)
     52 
     53    Return the *__module__* attribute of the function object *op*. This is normally
     54    a string containing the module name, but can be set to any other object by
     55    Python code.
     56 
     57 
     58 .. c:function:: PyObject* PyFunction_GetDefaults(PyObject *op)
     59 
     60    Return the argument default values of the function object *op*. This can be a
     61    tuple of arguments or *NULL*.
     62 
     63 
     64 .. c:function:: int PyFunction_SetDefaults(PyObject *op, PyObject *defaults)
     65 
     66    Set the argument default values for the function object *op*. *defaults* must be
     67    *Py_None* or a tuple.
     68 
     69    Raises :exc:`SystemError` and returns ``-1`` on failure.
     70 
     71 
     72 .. c:function:: PyObject* PyFunction_GetClosure(PyObject *op)
     73 
     74    Return the closure associated with the function object *op*. This can be *NULL*
     75    or a tuple of cell objects.
     76 
     77 
     78 .. c:function:: int PyFunction_SetClosure(PyObject *op, PyObject *closure)
     79 
     80    Set the closure associated with the function object *op*. *closure* must be
     81    *Py_None* or a tuple of cell objects.
     82 
     83    Raises :exc:`SystemError` and returns ``-1`` on failure.
     84