我宣布一个变量,比如说:
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.
是否可以将颜色变量的名称作为字符串?
答案 0 :(得分:7)
我想将另一个变量分配给字符串'var',即如何获取变量的符号名称。
不,你不想这样做。使用词典:
mydata = {}
varname = 'var'
mydata[varname] = 33
从技术上讲,您可以使用dict
或globals()
中的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