我希望能够将变量的名称作为字符串获取,但我不知道 Python 是否具有这么多的自省(introspection)功能。比如:
>>> print(my_var.__name__)
'my_var'
我想这样做是因为我有一堆变量想变成字典,比如:
bar = True
foo = False
>>> my_dict = dict(bar=bar, foo=foo)
>>> print my_dict
{'foo': False, 'bar': True}
但我想要比这更自动的东西。
Python 有 locals()
和 vars()
,所以我想是有办法的。
最佳答案
正如 unwind 所说,这并不是您在 Python 中真正要做的事情 - 变量实际上是到对象的名称映射。
不过,这里有一种方法可以尝试:
>>> a = 1
>>> for k, v in list(locals().iteritems()):
if v is a:
a_as_str = k
>>> a_as_str
a
>>> type(a_as_str)
'str'
https://stackoverflow.com/questions/2553354/