Comment récupérer la liste des paramètres d'une fonction en Python ?

Par : TutorialsGrey, le 08 Janvier 2022

Vous voulez récupérer la liste des paramètres d'une fonction, mais vous ne savez pas comment faire ? Cet article vous montre comment récupérer la liste des paramètres d'une fonction en Python.

Pour obtenir le nombre et les noms des paramètres d'une fonction en Python, nous pouvons utiliser soit la fonction signature(), soit la fonction getfullargspec() (pour plus de détails) de la bibliothèque inspect. Il n'est pas nécessaire d'installer la bibliothèque inspect car elle est déjà intégrée dans Python.

 

 Le code ci-dessous vous montre comment utiliser les fonctions signature() et getfullargspec() la bibliothèque standard inspect pour récupérer la liste des paramètres des fonctions getParams1 et getParams2.

Exemple :

import inspect

def getParams1(arg1, arg2):
   pass

print("Paramètres de la fonction getParams1()")
print("Méthode 1 avec la fonction signature():")
print(inspect.signature(getParams1))
print("\nMéthode 2 avec la fonction getfullargspec() :")
print(inspect.getfullargspec(getParams1))

def getParams2(a, b, c=4, *arglist, **keywords):
   pass

print("\n\nParamètres de la fonction getParams2()")
print("Méthode 1 avec la fonction signature() :")
print(inspect.signature(getParams2))
print("\nMéthode 2 avec la fonction getfullargspec() :")
print(inspect.getfullargspec(getParams2))

 

Résultat :

L'exécution du code ci-dessus affiche le résultat suivant :

Paramètres de la fonction getParams1()
Méthode 1 avec la fonction signature():
(arg1, arg2)

Méthode 2 avec la fonction getfullargspec() :
FullArgSpec(args=['arg1', 'arg2'], varargs=None, varkw=None, defaults=None, kwonlyargs=[], kwonlydefaults=None, annotations={})


Paramètres de la fonction getParams2()
Méthode 1 avec la fonction signature() :
(a, b, c=4, *arglist, **keywords)

Méthode 2 avec la fonction getfullargspec() :
FullArgSpec(args=['a', 'b', 'c'], varargs='arglist', varkw='keywords', defaults=(4,), kwonlyargs=[], kwonlydefaults=None, annotations={})