Maison > Article > développement back-end > Pouvez-vous extraire les noms de variables originaux des arguments de fonction en Python ?
Considérez le scénario suivant : vous avez une fonction qui nécessite le nom d'une variable comme argument pour effectuer certaines opérations basées sur ce nom. Existe-t-il un moyen d'obtenir le nom de variable d'origine dans la fonction ?
Pour répondre à cette question, explorons une méthode utilisant le module inspect qui vous permet de récupérer le contexte d'appel et d'extraire les noms de variables du contexte de code. .
<code class="python">import inspect def foo(a, f, b): # Get the stack frame of the calling function frame = inspect.currentframe() # Move up one level to get the frame of the calling context frame = inspect.getouterframes(frame)[1] # Get the source code context of the calling context string = inspect.getframeinfo(frame[0]).code_context[0].strip() # Extract the argument names from the code context args = string[string.find('(') + 1:-1].split(',') names = [] for i in args: if i.find('=') != -1: # Handle keyword arguments names.append(i.split('=')[1].strip()) else: # Handle positional arguments names.append(i) print(names) def main(): e = 1 c = 2 foo(e, 1000, b = c) main()</code>
Explication :
Exemple de résultat :
['e', '1000', 'c']
Remarque : Cette approche implique l'inspection de la pile d'appels et l'interprétation du contexte du code source, fragile et sujet aux erreurs. Il n'est pas recommandé pour une utilisation pratique et ne doit être envisagé qu'à des fins académiques ou de divertissement.
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!