我宣布一个变量,说:
var=33
Run Code Online (Sandbox Code Playgroud)
我想将另一个变量分配给字符串'var',即如何获取变量值的符号名称.
我该怎么做 ?
我重新提出了这个问题.
WHITE=0
RED=1
BLACK=2
Run Code Online (Sandbox Code Playgroud)
X = 2.
我想将值'BLACK'分配给变量,比如Y,考虑到X = 2.
很难准确地提出这个问题.
我想避免这样的代码:
color=''
if X==0:
color='WHITE'
elif X==1:
etc.
Run Code Online (Sandbox Code Playgroud)
是否可以将颜色变量的名称作为字符串?
我想将另一个变量分配给字符串'var',即如何获取变量的符号名称.
不,你不想这样做.使用词典:
mydata = {}
varname = 'var'
mydata[varname] = 33
Run Code Online (Sandbox Code Playgroud)
从技术上讲,你可以使用dictfrom globals()或locals()存储它,它可以作为"真正的变量"使用,但实际上,没有充分的理由这样做,它会使你的代码更难理解.
避免使用代码的方法:
color=''
if X==0:
color='WHITE'
elif X==1:
etc.
Run Code Online (Sandbox Code Playgroud)
用于:
COLORS = ('WHITE', 'RED', 'BLACK')
x = 2
try:
color = COLORS[x]
except IndexError:
color = 'DEFAULT COLOR'
Run Code Online (Sandbox Code Playgroud)
这消除了顺序ifs和维护以外的扩展COLORS.你也可以这样做:
COLORS = {0: 'WHITE', 1: 'RED', 2: 'BLACK'}
x = 2
color = COLORS.get(x, 'DEFAULT COLOR')
Run Code Online (Sandbox Code Playgroud)
但这也需要手动管理索引(键).