如何在Python中获取变量名作为字符串?

问题:

我想能够将一个变量的名称作为一个字符串,但我不知道Python是否具有这么多的内省能力。就像是:

>>> print(my_var.__name__)
'my_var'

我想这样做,因为我有一堆var我想变成一个字典,如:

bar = True
foo = False
>>> my_dict = dict(bar=bar, foo=foo)
>>> print my_dict 
{'foo': False, 'bar': True}

但是我想要的东西比这更自动。
Python有locals()vars(),所以我想有一种方法。

回答:

你想这样做吗?

dict( (name,eval(name)) for name in ['some','list','of','vars'] )

>>> some= 1
>>> list= 2
>>> of= 3
>>> vars= 4
>>> dict( (name,eval(name)) for name in ['some','list','of','vars'] )
{'list': 2, 'some': 1, 'vars': 4, 'of': 3}

 
 
Code问答: http://codewenda.com/topics/python/
Stackoverflow: How to get a variable name as a string in Python?

*转载请注明本文链接以及stackoverflow的英文链接

发表评论

电子邮件地址不会被公开。 必填项已用*标注

8 + = 17