Obtention des noms de paramètres de méthode
Étant donné une fonction définie comme :
def a_method(arg1, arg2): pass
Comment pouvons-nous récupérer les noms d'arguments sous forme de tuple de chaînes, comme ("arg1", "arg2") ?
Utilisation du module Inspect
Le module inspect nous permet d'inspecter les objets de code et de récupérer leurs propriétés. Pour obtenir les noms d'arguments d'une_méthode, utilisez inspect.getfullargspec() :
>>> inspect.getfullargspec(a_method) (['arg1', 'arg2'], None, None, None)
Le résultat est constitué des noms d'arguments et d'informations supplémentaires, telles que les noms des args et * kwargs et leurs valeurs par défaut.
def foo(a, b, c=4, *arglist, **keywords): pass >>> inspect.getfullargspec(foo) (['a', 'b', 'c'], 'arglist', 'keywords', (4,))
Utilisation de inspect.signature()
Dans Python 3.3 et versions ultérieures, nous pouvons utiliser inspect.signature() pour obtenir la signature d'appel d'un objet appelable :
>>> inspect.signature(foo) <Signature (a, b, c=4, *arglist, **keywords)>
Cela fournit une signature plus détaillée, y compris les types de paramètres et les valeurs par défaut.
Remarque : Certains appelables en Python peuvent ne pas être introspectables, en particulier ceux définis en C dans CPython. Dans de tels cas, inspect.getfullargspec() générera une ValueError.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!