Objets fonction
***************

Certaines fonctions sont spécifiques aux fonctions Python.

type PyFunctionObject

   La structure C utilisée pour les fonctions.

PyTypeObject PyFunction_Type

   C'est une instance de "PyTypeObject" et représente le type fonction
   en Python. Il est exposé aux développeurs comme
   "types.FunctionType".

int PyFunction_Check(PyObject *o)

   Renvoie vrai si *o* est un objet de type fonction (a comme type
   "PyFunction_Type"). Le paramètre ne doit pas être "NULL". Cette
   fonction réussit toujours.

PyObject *PyFunction_New(PyObject *code, PyObject *globals)
    *Valeur de retour : nouvelle référence.*

   Renvoie une nouvelle fonction associée avec l'objet *code*.
   *globals* doit être un dictionnaire avec les variables globales
   accessibles à la fonction.

   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 code object's "co_qualname" field.

PyObject *PyFunction_NewWithQualName(PyObject *code, PyObject *globals, PyObject *qualname)
    *Valeur de retour : nouvelle référence.*

   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 the code object's "co_qualname" field.

   Nouveau dans la version 3.3.

PyObject *PyFunction_GetCode(PyObject *op)
    *Valeur de retour : référence empruntée.*

   Renvoie l'objet code associé avec l'objet de la fonction *op*.

PyObject *PyFunction_GetGlobals(PyObject *op)
    *Valeur de retour : référence empruntée.*

   Renvoie le dictionnaire global associé avec l'objet de la fonction
   *op*.

PyObject *PyFunction_GetModule(PyObject *op)
    *Valeur de retour : référence empruntée.*

   Return a *borrowed reference* to the "__module__" attribute of the
   function object *op*. It can be *NULL*.

   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)
    *Valeur de retour : référence empruntée.*

   Renvoie les valeurs par défaut de l'argument de l'objet de la
   fonction *op*. Cela peut être un tuple d'arguments ou "NULL".

int PyFunction_SetDefaults(PyObject *op, PyObject *defaults)

   Définir les valeurs par défaut de l'argument pour l'objet de la
   fonction *op*. *defaults* doit être "Py_None" ou un tuple.

   Lève "SystemError" et renvoie "-1" en cas de d'échec.

PyObject *PyFunction_GetClosure(PyObject *op)
    *Valeur de retour : référence empruntée.*

   Renvoie la fermeture associée avec l'objet de la fonction *op*.
   Cela peut être "NULL" ou un tuple d'objets cellule.

int PyFunction_SetClosure(PyObject *op, PyObject *closure)

   Définir la fermeture associée avec l'objet de la fonction *op*.
   *closure* doit être "Py_None" ou un tuple d'objets cellule.

   Lève "SystemError" et renvoie "-1" en cas de d'échec.

PyObject *PyFunction_GetAnnotations(PyObject *op)
    *Valeur de retour : référence empruntée.*

   Renvoie les annotations de l'objet de la fonction *op*. Cela peut
   être un dictionnaire mutable ou "NULL".

int PyFunction_SetAnnotations(PyObject *op, PyObject *annotations)

   Définir les annotations pour l'objet de la fonction *op*.
   *annotations* doit être un dictionnaire ou "Py_None".

   Lève "SystemError" et renvoie "-1" en cas de d'échec.
