打印变量名称而不是它在Python中的值

时间:2016-07-06 17:39:17

标签: python string

我有变量

street_38 = (4,6,7,12,1,0,5)

有没有办法实际打印名称而不是值? 这就是我对获得'street_38'的兴趣。我想要那个,因为我正在绘制一个数字,当我把

plt.title(str(street_38)

作为标题我得到的是值而不是名字

由于

2 个答案:

答案 0 :(得分:1)

this answer,你可以做这样的事情

 >>> 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'

话虽如此,这不是一个好方法。 Python对象没有名称。相反,名称具有对象。一个例外是函数的__name__属性,但规则是相同的 - 我们只是将名称存储为属性。对象本身仍未命名。

上述方法滥用locals()方法。这不是理想的。更好的方法是将数据重组为类似字典的内容。字典特别是一组命名值。

{
    'street38': (4,6,7,12,1,0,5)
}

字典的重点是这种键值关系。这是一种基于名称查找值的方法,这正是您想要的。您可能遇到的另一个问题(取决于您在这里做了什么)是如果有数千条街道将会发生的事情。当然,你也不想写出数以千计的变量名。

答案 1 :(得分:0)

没有良好的方式以编程方式执行此操作。理想情况下,变量的名称对代码完全没有意义。它只对向程序员传达想法非常有用,这样他们才能知道自己在使用什么。