You can part way there using keyword arguments. You just have to use dictionary syntax for changing values in the dictionary:
>>> def f(d, x=None, y=None): ... d['z'] = x + y ... >>> a = {'x':1, 'y':2} >>> b = {'x':3, 'y':3} >>> >>> f(a, **a) >>> a {'y': 2, 'x': 1, 'z': 3} >>> f(b, **b) >>> b {'y': 3, 'x': 3, 'z': 6}
This is not possible in my case since my dictionary have many more items than just x and y. So, if there is are other items in the dictionary
>>> a = {'x':1, 'y':2, 'else':4} >>> f(a,**a) Traceback (most recent call last): File "<stdin>", line 1, in ? File "/usr/tmp/python-10176RtT.py", line 1, in ? f(a,**a) TypeError: f() got an unexpected keyword argument 'else'
Bo -- http://mail.python.org/mailman/listinfo/python-list