私はこのようないくつかの変数があります。ストリング変数名パイソン
for i in range(1,5):
self.canvas.itemconfig(self.lamp_/number_i_automaticly/, fill=self.color_blink)
私が試した:
self.lamp_1
self.lamp_2
self.lamp_3
self.lamp_4
と、今私は、この名前のそれぞれは、このように、自動にそれらを呼び出すためにループで使用したいです関数eval()を使用しても動作しません。私のプログラムの実行を停止します。
eval("self.canvas.itemconfig(self.lamp_"+str(i)+",fill=self.color_blink)")
どのようにして、キーiを使用して、そのように変数の名前を格闘することができますか?
私はこれを使用しました: 'self.canvas.itemconfig(eval(" self.lamp_ {0} "。format(i))、 fill = self.color_blink)' 正常に動作します!どうもありがとう!! – greg
@greg:インデックス付きの変数名を使用することは非常に悪い考えです。 getattr()の代わりに 'eval()'を使ってアクセスするのはさらに悪い考えです。私たちのアドバイスを無視しないであなた自身に恩恵を与えてください! :) –