[PYTHON] Obtenez le nom de la variable sous forme de chaîne de caractères.

Je le voulais pour le débogage, alors je l'ai fait moi-même. En python, il y a une variable intégrée dans l'espace de noms, alors recherchez-la. (Utilisez les variables d'espace de noms locals () '' et globals () ''.) La référence de la variable n'est pas unique, mais la destination de référence de la variable est unique (... n'est-ce pas?). (Utilisez la fonction d'identifiant ʻid () `.)

def getVarsNames( _vars, symboltable ) :
    """
    This is wrapper of getVarName() for a list references.
    """
    return [ getVarName( var, symboltable ) for var in _vars ]

def getVarName( var, symboltable, error=None ) :
    """
    Return a var's name as a string.\nThis funciton require a symboltable(returned value of globals() or locals()) in the name space where you search the var's name.\nIf you set error='exception', this raise a ValueError when the searching failed.
    """
    for k,v in symboltable.iteritems() :
        if id(v) == id(var) :
            return k
    else :
        if error == "exception" :
            raise ValueError("Undefined function is mixed in subspace?")
        else:
            return error

if __name__ == "__main__":
    a = 4
    b = "ahoo"
    print getVarsNames([a,b,"c"],locals())

Ceci est la valeur de retour.

['a', 'b', None]

qu'en est-il de? Que se passe-t-il si vous appelez à partir de fonctions imbriquées qui se chevauchent?

Postscript: n'hésitez pas à envoyer des exceptions

Recommended Posts

Obtenez le nom de la variable sous forme de chaîne de caractères.
[PowerShell] Obtenez la lecture de la chaîne de caractères
#Une fonction qui renvoie le code de caractère d'une chaîne de caractères
[Python] J'ai essayé d'obtenir le nom du type sous forme de chaîne de caractères à partir de la fonction type
Extraire la valeur de dict ou list sous forme de chaîne de caractères
<Python> Un quiz pour convertir par lots les noms de fichiers séparés par une chaîne de caractères spécifique dans le cadre du nom de fichier
pandas Récupère le nom d'une colonne contenant un caractère spécifique
[Python] Récupère le nom de la variable avec str
[Python] Récupère le code de caractère du fichier
Obtenez le nom de fichier du répertoire (glob)
Obtenez la formule dans le fichier Excel sous forme de chaîne en Python
Récupérer l'appelant d'une fonction en Python
[NNabla] Comment obtenir la sortie (variable) de la couche intermédiaire du réseau construit
Comment obtenir le nom de la variable lui-même en python
Obtenir le nom de fichier dans un dossier à l'aide de glob
Découpez une partie de la chaîne à l'aide d'une tranche Python
[Langage C] [Linux] Récupère la valeur de la variable d'environnement
Une histoire sur le changement du nom principal de BlueZ
Afficher le résultat de sortie de sklearn.metrics.classification_report sous forme de fichier CSV
Calculer le produit des matrices avec une expression de caractère?
Note Python: Le mystère de l'attribution d'une variable à une variable
[Ansible] Exemple de playbook qui ajoute une chaîne de caractères à la première ligne du fichier
Lorsqu'une variable locale portant le même nom que la variable globale est définie dans la fonction
Obtenez le nombre de chiffres
Découvrez la largeur apparente d'une chaîne en python
Obtenez l'identifiant d'un GPU avec une faible utilisation de la mémoire
Obtenez UNIXTIME au début d'aujourd'hui avec une commande
Obtenez le nombre d'éléments spécifiques dans la liste python
Pour obtenir le nom de la primitive etc. généré immédiatement avant
Obtenez le nom d'hôte du PC hôte avec Docker sous Linux
Comment connecter le contenu de la liste dans une chaîne de caractères
[Linux] [C / C ++] Comment obtenir la valeur d'adresse de retour d'une fonction et le nom de fonction de l'appelant
[Python] Programmation pour trouver le nombre de a dans une chaîne de caractères qui se répète un nombre spécifié de fois.
Comment compter rapidement la fréquence d'apparition des caractères à partir d'une chaîne de caractères en Python?
Lorsqu'une chaîne de caractères d'une certaine série se trouve dans la clé du dictionnaire, la chaîne de caractères est convertie en valeur du dictionnaire.
Je veux obtenir le nom de la fonction / méthode en cours d'exécution
Obtenez le nombre de vues de Qiita
[Introduction à Python] Comment fractionner une chaîne de caractères avec la fonction split
Format lors du passage d'une longue chaîne comme argument de python
Comment vérifier la taille de la mémoire d'une variable en Python
Obtenir les attributs d'un objet
Sortie de la ligne contenant la chaîne de caractères spécifiée à partir du fichier texte
[Python] Obtenir la date de mise à jour d'un article d'actualité à partir de HTML
Obtenez le premier élément du jeu de requêtes
Obtenir l'URL du ticket JIRA créé par la bibliothèque jira-python
Comment obtenir les coordonnées de sommet d'une entité dans ArcPy
Comment extraire la chaîne de caractères souhaitée à partir d'une ligne 4 commandes
Obtenez le nombre d'abonnés Youtube
Essayez d'utiliser Elasticsearch comme base de votre système de questions et réponses
Obtenez le nom d'hôte en Python
Créez une fonction pour obtenir le contenu de la base de données dans Go
[Golang] Vérifiez si une chaîne de caractères spécifique est incluse dans la chaîne de caractères
L'histoire de l'exportation d'un programme
Récupérer la chaîne de requête (chaîne de requête) avec Django
Obtenez le nombre de lecteurs d'articles sur Mendeley en Python
Python> Slice> Un décalage de tranche antérieur au début d'une chaîne est traité comme 0, et un après la fin est traité comme -1
Les débutants en scraping Web ont essayé de créer une commande pour obtenir le nom du film du road show de vendredi prochain
L'histoire de la création d'un outil pour charger une image avec Python ⇒ l'enregistrer sous un autre nom