Tuesday, 27 August 2013

How to update local variables in function with a dictionary?

How to update local variables in function with a dictionary?

A problem meeted in rewriting a python program.
I move some previous global variables into a dictionay, so I have to
rewrite the functions which have used those variables.
For example,
#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
As the dictionary d is large, so I'm seeking a something like this
d = dict(a=1,b=2)
def func(c,d):
locals().update(d)
print a+b+c
I have tried __dict__.update(d), however __dict__ can't be accessed directly.
Or for key,value in d.items(): setattr(obj,key,value) is possible? If yes,
how to set the obj to the function itself?

No comments:

Post a Comment