函式（Function）物件
********************

這有一些少數Python函數的於具體說明。

PyFunctionObject

   The C structure used for functions.

PyTypeObject PyFunction_Type

   This is an instance of "PyTypeObject" and represents the Python
   function type.  It is exposed to Python programmers as
   "types.FunctionType".

int PyFunction_Check(PyObject *o)

   Return true if *o* is a function object (has type
   "PyFunction_Type"). The parameter must not be *NULL*.

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

   Return a new function object associated with the code object
   *code*. *globals* must be a dictionary with the global variables
   accessible to the function.

   The function's docstring and name are retrieved from the code
   object. *__module__* is retrieved from *globals*. The argument
   defaults, annotations and closure are set to *NULL*. *__qualname__*
   is set to the same value as the function's name.

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

   As "PyFunction_New()", but also allows setting the function
   object's "__qualname__" attribute.  *qualname* should be a unicode
   object or NULL; if NULL, the "__qualname__" attribute is set to the
   same value as its "__name__" attribute.

   3.3 版新加入.

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

   回傳與程式碼物件相關的函數物件 *op*。

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

   回傳與全域函數字典相關的函數物件 *op*。

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

   Return the *__module__* attribute of the function object *op*. This
   is normally a string containing the module name, but can be set to
   any other object by Python code.

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

   Return the argument default values of the function object *op*.
   This can be a tuple of arguments or *NULL*.

int PyFunction_SetDefaults(PyObject *op, PyObject *defaults)

   Set the argument default values for the function object *op*.
   *defaults* must be *Py_None* or a tuple.

   Raises "SystemError" and returns "-1" on failure.

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

   Return the closure associated with the function object *op*. This
   can be *NULL* or a tuple of cell objects.

int PyFunction_SetClosure(PyObject *op, PyObject *closure)

   Set the closure associated with the function object *op*. *closure*
   must be *Py_None* or a tuple of cell objects.

   Raises "SystemError" and returns "-1" on failure.

PyObject *PyFunction_GetAnnotations(PyObject *op)

   回傳函式物件 *op* 標註。此可以是一個可變動的字典或 *NULL*。

int PyFunction_SetAnnotations(PyObject *op, PyObject *annotations)

   設定函數物件 *op* 的標註。*annotations* 必須是一個字典或 *Py_None*
   。

   Raises "SystemError" and returns "-1" on failure.
