2016-05-22 7 views
0

私はスクエアと呼ばれるクラスを持っています。文字列を変数に変換し、それぞれを同じクラスに割り当てようとしています。ダイナミック変数を同じクラスに割り当てるにはどうすればよいですか?

a = 'var' 
exec("%s = %d" % (a,Square())) 

エラーが正方形でない整数を使用するように言うので上記のサンプルコードは動作しません。

TypeError: %d format: a number is required, not Square 

は%dはこれが機能するために変更するために何がありますか?

+0

に動作しますか?代わりに辞書を使う: 'namespace = {a:Square()}'はインスタンスにキー '' var ''をセットする。 –

答えて

0

intプレースホルダにSquareオブジェクトを配置しようとしました。

しかし、あなたの質問では、動的変数を割り当てたいと述べました。

はあなたがexecSquareオブジェクトを作成したいこの

​​3210

を試してみてください。

「動的変数」はおそらくあなたが望むものではないことに注意してください。あなたは変数の値にアクセスするのと同じ困難を抱えています。

dictクラスをご覧ください。これにより、キーで表されるオブジェクトを非常に簡単に保存できます。あなたが最初の場所で変数を設定する必要がありますなぜ辞書を使用して

# create a dictionary 
my_squares = {} 

# create the square and put it into the dict 
my_squares["some name"] = Square() 

# do whatever you want with your square 
print(my_squares["some name"]) 
1

例えば

はよく

x = {} 
a = 'var' 
x[a]= Square() 
関連する問題