récupérer le nbre d'arguments d'une fonction

Bonjour,
Je souhaite écrire une fonction qui reçoit des fonctions en arguments, et j’aurais besoin qu’elle puisse déterminer le nombre d’arguments des fonctions passées en arguments.
Exemple simplifié:

def f(a,b,c)
    return a+b+c

def mafonction(f):
    k = #nbre d'arguments de la fonction f

Existe-t-il une syntaxe pour récupérer dans k le nombre d’arguments de f ?

Merci d’avance !

1 « J'aime »

Bonjour,

Oui, il existe une telle fonction dans le module inspect.

>>> from inspect import signature
>>> def f(a, b, c=0):
...    return a + b + c
...
>>> sig = signature(f)
>>> print(sig)
(a, b, c=0)
>>> len(sig.parameters)
3
1 « J'aime »

Merci ! :+1: :+1: :+1: