102 votes

Convertir le nom de la variable en chaîne ?

J'aimerais convertir un nom de variable python en son équivalent en chaîne de caractères, comme indiqué. Comment faire ?

var = {}
print ???  # Would like to see 'var'
something_else = 3
print ???  # Would print 'something_else'

1 votes

Pourriez-vous préciser ce que vous essayez de faire ? Il semble que vous demandiez comment résoudre un problème de la mauvaise manière. Il y a aussi une question similaire, mais à propos de Ruby stackoverflow.com/questions/58482/ruby-get-a-variables-name

1 votes

J'ai vérifié cette question car, en utilisant RPy2, je veux passer une variable Python avec un nom R éponyme. Un exemple inutile (mais proche de mon application) : def to_R( py_var ): r.assign( 'py_var', py_var ) pour assigner les données de (Py) py_var à l'environnement R et avoir le même nom. Ce serait utile pour moi de le faire à la place, r.assign( py_var.stringof, py_var ) a la D puisque le nom de la variable passée à ma fn to_r n'est pas nécessairement py_var .

4 votes

L'une des façons de l'utiliser est lorsqu'une déclaration Assert échoue. Vous pouvez fournir à l'utilisateur le nom exact de la variable en question tout en conservant votre code générique, par exemple AssertionError : 'something_else' must be a number greater than 5 (erreur d'affirmation : 'quelque chose_autre' doit être un nombre supérieur à 5). Vous pouvez alors tester chaque variable qui doit être supérieure à 5 et obtenir le nom de la variable dans le message AssertionError.

-1voto

Ce module permet de convertir les noms de variables en chaînes de caractères : https://pypi.org/project/varname/

Utilisez-le comme suit :

from varname import nameof

variable=0

name=nameof(variable)

print(name)

//output: variable

L'installer en :

pip install varname

-3voto

Jonathan Feinberg Points 24791
print "var"
print "something_else"

Ou voulez-vous dire something_else ?

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X