Python:获取变量的名称

时间:2012-07-19 22:22:53

标签: python

我宣布一个变量,比如说:

var=33

我想将另一个变量分配给字符串'var',即如何获取变量值的符号名称。

我该怎么做?


我重新提出问题。

WHITE=0
RED=1
BLACK=2

X = 2。

考虑到X = 2,我想将值'BLACK'赋值给变量,比如Y.

很难准确地提出这个问题。

我想避免使用这样的代码:

color=''
if X==0:
     color='WHITE'
elif X==1:
etc.

是否可以将颜色变量的名称作为字符串?

3 个答案:

答案 0 :(得分:7)

  

我想将另一个变量分配给字符串'var',即如何获取变量的符号名称。

不,你不想这样做。使用词典:

mydata = {}
varname = 'var'
mydata[varname] = 33

从技术上讲,您可以使用dictglobals()中的locals()来存储它,它可以作为“真实变量”使用,但实际上,没有充分理由这样做会使你的代码更难理解。

避免使用代码的方法:

color=''
if X==0:
     color='WHITE'
elif X==1:
etc.

是否:

COLORS = ('WHITE', 'RED', 'BLACK')
x = 2
try:
    color = COLORS[x]
except IndexError:
    color = 'DEFAULT COLOR'

这消除了顺序ifs和维护,而不是扩展COLORS。你也可以这样做:

COLORS = {0: 'WHITE', 1: 'RED', 2: 'BLACK'}
x = 2
color = COLORS.get(x, 'DEFAULT COLOR')

但这也需要手动管理索引(键)。

答案 1 :(得分:3)

colors = {0:"WHITE", 1:"RED", 2:"BLACK"}
X=2
print colors[X]

答案 2 :(得分:1)

如果你绝对,积极,必须拥有它:

x = 2
n = locals()
n['x'] # 2