Existe-t-il un moyen d'obtenir les noms de paramètres d'une fonction?
def foo(bar, buz):
pass
magical_way(foo) == ["bar", "buz"]
Utilisez le module inspect de la bibliothèque standard de Python (le moyen le plus propre et le plus solide pour effectuer une introspection).
Plus précisément, inspect.getargspec(f)
renvoie les noms et les valeurs par défaut des arguments de f
- si vous ne voulez que les noms et ne vous souciez pas des formes spéciales *a
, **k
,
import inspect
def magical_way(f):
return inspect.getargspec(f)[0]
répond complètement à vos exigences exprimées.
>>> import inspect
>>> def foo(bar, buz):
... pass
...
>>> inspect.getargspec(foo)
ArgSpec(args=['bar', 'buz'], varargs=None, keywords=None, defaults=None)
>>> def magical_way(func):
... return inspect.getargspec(func).args
...
>>> magical_way(foo)
['bar', 'buz']