Maison > Article > développement back-end > Comment obtenir une liste de noms de paramètres pour une fonction Python ?
Récupération des noms de paramètres dans les fonctions Python
En Python, l'introspection des paramètres d'une fonction peut être utile à diverses fins. Une question courante est de savoir comment obtenir par programme une liste des noms de paramètres pour une fonction donnée.
Méthodes Python intégrées
Le module inspect fournit des capacités d'introspection complètes pour Objets Python, y compris les fonctions. Cependant, les méthodes inspect.getargspec() et inspect.signature(), souvent utilisées pour récupérer des informations sur les paramètres, sont obsolètes dans Python 3.10 et les versions ultérieures.
Approche alternative utilisant les métadonnées de fonction
Heureusement, il existe une approche alternative qui exploite les métadonnées de la fonction sous-jacente :
<code class="python">def list_parameter_names(func): """Returns a list of parameter names for a given function.""" # Get the function's code object. code = func.__code__ # The co_varnames attribute contains a tuple of parameter names. return code.co_varnames</code>
Cet extrait de code définit une fonction réutilisable, list_parameter_names(), qui prend une fonction comme argument et renvoie un liste de ses noms de paramètres.
Exemple d'utilisation
Voici un exemple montrant comment utiliser la fonction list_parameter_names() :
<code class="python">def my_function(a, b, c): ... parameter_names = list_parameter_names(my_function) print(parameter_names) # Output: ['a', 'b', 'c']</code>
Considérations supplémentaires
Notez que cette méthode s'appuie sur l'objet code de la fonction, qui est un objet immuable qui ne peut pas être modifié. Cela signifie que toute modification apportée à la liste des paramètres de la fonction après sa création ne sera pas reflétée dans les noms de paramètres obtenus via cette méthode.
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!