Maison  >  Article  >  développement back-end  >  Comment extraire les noms des paramètres de méthode à l’aide de techniques d’introspection ?

Comment extraire les noms des paramètres de méthode à l’aide de techniques d’introspection ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-02 03:16:02623parcourir

How to Extract Method Parameter Names Using Introspection Techniques?

Techniques d'introspection pour extraire les noms de paramètres de méthode

Étant donné une fonction telle que :

def a_method(arg1, arg2):
    pass

Récupérer les noms de paramètres sous la forme d'un tuple de chaînes, telles que as ("arg1", "arg2").

Inspection des objets de code

Utilisez le module d'inspection pour l'introspection des objets de code :

<code class="python">>>> inspect.getfullargspec(a_method)
(['arg1', 'arg2'], None, None, None)</code>

Cela renvoie la liste d'arguments, un tuple de valeurs par défaut, un dictionnaire d'arguments de mots-clés et le nombre d'arguments de mots-clés uniquement.

Inspection des callables

L'exemple suivant présente l'introspection des callables avec des arguments variables :

<code class="python">>>> def foo(a, b, c=4, *arglist, **keywords): pass
>>> inspect.getfullargspec(foo)
(['a', 'b', 'c'], 'arglist', 'keywords', (4,))</code>

Remarque : Certaines fonctions intégrées définies en C ne peuvent pas être introspectées, ce qui entraîne une ValueError lors de l'utilisation de inspect.getfullargspec().

Python 3.3 et supérieur

Pour les versions 3.3 et supérieures de Python, inspect.signature() fournit une vue plus complète des signatures appelables :

<code class="python">>>> inspect.signature(foo)
<Signature (a, b, c=4, *arglist, **keywords)></code>

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