Maison >développement back-end >Tutoriel Python >Comment puis-je obtenir le nom d'une variable Python au moment de l'exécution ?

Comment puis-je obtenir le nom d'une variable Python au moment de l'exécution ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-21 14:02:10115parcourir

How Can I Get a Python Variable's Name at Runtime?

Intercepter les noms de variables en Python

En Python, accéder directement au nom d'une variable n'est pas une tâche simple. Cependant, pour des scénarios spécifiques, où l'obtention du nom de la variable est cruciale, envisagez la solution suivante.

La tromperie du module Inspect

Grâce au module inspect, vous pouvez parcourir la pile d'appels et extraire la variable nom d'intérêt. Voici comment procéder :

import inspect, re

def varname(p):
  for line in inspect.getframeinfo(inspect.currentframe().f_back)[3]:
    m = re.search(r'\bvarname\s*\(\s*([A-Za-z_][A-Za-z0-9_]*)\s*\)', line)
    if m:
      return m.group(1)

Exemple d'utilisation

Pour illustrer sa fonctionnalité, supposons que vous ayez une variable nommée spam avec une valeur de 42. En utilisant la fonction varname(), vous pouvez récupérer son nom :

if __name__ == '__main__':
  spam = 42
  print varname(spam)

Sortie

La sortie sera be :

spam

Remarque de prudence

Bien que cette approche fournisse un moyen d'accéder aux noms de variables, il est important de l'utiliser judicieusement. La dénomination directe des variables est généralement déconseillée dans les pratiques de codage Pythonic. Envisagez des solutions alternatives, telles que la transformation du fichier de configuration en dictionnaire lors de l'initialisation pour éviter d'avoir recours à cette technique.

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