Maison >développement back-end >Tutoriel Python >Comment récupérer les noms des paramètres de méthode en Python ?

Comment récupérer les noms des paramètres de méthode en Python ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-03 06:52:301040parcourir

How to Retrieve Method Parameter Names in Python?

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn