Michael Spencer wrote:
As you no doubt have discovered from the docs and this group, that isn't doable with CPython.
Too bad to know this.
>>> a = {'x':1, 'y':2}
>>> b = {'x':3, 'y':3}
...
>>> def funa(x,y, **kw):
... del kw #Careful of unwanted names in locals with this approach
... z = x + y
... return locals()
There are hundreds of items in the dictionary (that will be needed in the calculation) so passing the whole dictionary is a lot better than passing individual items.
Alternatively, you could use exec:
Yes. I thought of using exec or eval. If there are a dozen statements,
def fun(d): exec 'z = x + y' in globals(), d
seems to be more readable than
def fun(d): d['z'] = d['x'] + d['y']
But how severe will the performance penalty be?
Bo
-- http://mail.python.org/mailman/listinfo/python-list
