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)
Return value: New reference.

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

La docstring et le nom de la fonction sont récupérés à partir de l'objet code. __module__ est récupéré à partir de globals. Les arguments par défaut, les annotations et la fermeture sont mis à NULL. __qualname__ est mis à la même valeur que celle du champ co_qualname de l'objet code.

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

Comme PyFunction_New(), mais accepte aussi une valeur à utiliser pour l'attribut __qualname__ de l'objet fonction. qualname doit être un objet Unicode ou NULL; s'il est NULL, l'attribut __qualname__ de l'objet fonction prend la valeur de l'attribut co_qualname de l'objet code.

Nouveau dans la version 3.3.

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

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

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

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

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

Renvoie un borrowed reference à l'attribut __module__ de l'objet fonction op. Il peut être NULL.

C'est typiquement une chaîne de caractère contenant le nom du module, mais il peut être changé par du code Python pour n'importe quel autre objet.

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

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)
Return value: Borrowed reference.

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)
Return value: Borrowed reference.

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.