Maison > développement back-end > Tutoriel Python > 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
Libérer: 2024-11-02 03:16:02
original
745 Les gens l'ont consulté

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
Copier après la connexion

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>
Copier après la connexion

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>
Copier après la connexion

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>
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal