1

私は変数を宣言します。

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.

色変数の名前を文字列として取得することは可能ですか?

4

3 に答える 3

7

別の変数に文字列 'var' を割り当てたい、つまり、変数のシンボル名を取得する方法を知りたいです。

いいえ、あなたはそれをしたくありません。dict を使用します。

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

技術的には、これを格納するために from を使用することができ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'

これにより、連続した if と、展開以外のメンテナンスが不要になりCOLORSます。次のこともできます。

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

ただし、これにはインデックス (キー) の手動管理も必要です。

于 2012-07-19T22:25:22.743 に答える
3
colors = {0:"WHITE", 1:"RED", 2:"BLACK"}
X=2
print colors[X]
于 2012-07-19T22:40:03.937 に答える
1

あなたが絶対に、積極的に、それを持っていなければならないなら:

x = 2
n = locals()
n['x'] # 2
于 2012-07-19T22:45:19.073 に答える