La réponse précédemment acceptée a été dépréciée au Python 3.0. Au lieu d'utiliser, inspect.getargspecvous devriez maintenant opter pour la Signatureclasse qui l'a remplacé.
Créer une signature pour la fonction est facile via la signaturefonction :
from inspect import signature
def someMethod(self, arg1, kwarg1=None):
    pass
sig = signature(someMethod)
Désormais, vous pouvez soit afficher rapidement ses paramètres en l' strutilisant:
str(sig)  # returns: '(self, arg1, kwarg1=None)'
ou vous pouvez également obtenir un mappage des noms d'attributs aux objets paramètres via sig.parameters.
params = sig.parameters 
print(params['kwarg1']) # prints: kwarg1=20
De plus, vous pouvez appeler lenle sig.parametersvoir aussi le nombre d'arguments de cette fonction nécessite:
print(len(params))  # 3
Chaque entrée du paramsmappage est en fait un Parameterobjet qui a d'autres attributs qui vous facilitent la vie. Par exemple, saisir un paramètre et afficher sa valeur par défaut est désormais facile avec:
kwarg1 = params['kwarg1']
kwarg1.default # returns: None
de même pour le reste des objets contenus dans parameters.
Quant aux 2.xutilisateurs de Python , bien que inspect.getargspec non obsolète, le langage le sera bientôt :-). La Signatureclasse n'est pas disponible dans la 2.xsérie et ne le sera pas. Vous devez donc toujours travailler avec inspect.getargspec.
En ce qui concerne la transition entre Python 2 et 3, si vous avez du code qui repose sur l'interface de getargspecPython 2 et que le passage à signaturedans 3est trop difficile, vous avez la possibilité d'utiliser inspect.getfullargspec. Il offre une interface similaire à getargspec(un seul argument appelable) afin de récupérer les arguments d'une fonction tout en gérant des cas supplémentaires qui getargspecne le font pas:
from inspect import getfullargspec
def someMethod(self, arg1, kwarg1=None):
    pass
args = getfullargspec(someMethod)
Comme avec getargspec, getfullargspecrenvoie a NamedTuplequi contient les arguments.
print(args)
FullArgSpec(args=['self', 'arg1', 'kwarg1'], varargs=None, varkw=None, defaults=(None,), kwonlyargs=[], kwonlydefaults=None, annotations={})
               
              
inspectmodule de bibliothèque standard.