Python プログラムの書き直しで発生した問題。
以前のグローバル変数を辞書に移動したので、それらの変数を使用した関数を書き直さなければなりません。
例えば、
#old one
a, b = 1, 2
def func(c):
print a+b+c
#new one
d = dict(a=1,b=2)
def func(c,d):
a = d['a']
b = d['b']
print a+b+c
辞書 dが大きいので、このようなものを探しています
d = dict(a=1,b=2)
def func(c,d):
locals().update(d)
print a+b+c
試してみ ましたが__dict__.update(d)
、__dict__
直接アクセスできません。
それともfor key,value in d.items():
setattr(obj,key,value)
可能ですか?はいの場合、obj を関数自体に設定する方法は?