我声明一个变量,比如:
var=33
我想将字符串'var'赋值给另一个变量,即如何获取变量值的符号名称。
我该怎么做?
我重新表述问题。
WHITE=0
RED=1
BLACK=2
X=2。
我想将值“BLACK”分配给一个变量,例如 Y,同时考虑到 X=2。
很难准确地提出这个问题。
我想避免这样的代码:
color=''
if X==0:
color='WHITE'
elif X==1:
etc.
是否可以将颜色变量的名称作为字符串获取?
请您参考如下方法:
I want to assign to another variable the string 'var', that is , how to get the symbol's name of a variable.
不,你不想那样做。使用字典:
mydata = {}
varname = 'var'
mydata[varname] = 33
从技术上讲,您可以使用 globals() 或 locals() 中的 dict 来存储它,它可以作为“真正的变量”,但实际上,没有充分的理由这样做,这会使您的代码更难理解。
避开你给的代码的方法:
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'
这消除了连续的 if 和扩展 COLORS 之外的维护。你也可以这样做:
COLORS = {0: 'WHITE', 1: 'RED', 2: 'BLACK'}
x = 2
color = COLORS.get(x, 'DEFAULT COLOR')
但这也需要手动管理索引(键)。
