Python:获取变量的名称

ali*_*oar 1 python

我宣布一个变量,说:

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)

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

Mar*_*cin 7

我想将另一个变量分配给字符串'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)

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

  • @alinsoar,_reason_你不想这样做是因为你做不到.在python中,变量不是容器,它们只是指向事物的名称. (2认同)