I have spent quite a bit of time trying to find the answer on this
group, but I've been unsuccessful. Here is what I'd like to be able to
do:

def A(**kwargs):
    kwargs['eggs'] = 1

def B(**kwargs):
    print(kwargs)

def C(**kwargs):
    A(**kwargs)
    B(**kwargs)

I'd like to be able to make a call like:

C(spam=0)

and have it print
{'spam': 0, 'eggs': 1}

But it doesn't do that. Instead, it gives
{'spam': 0}

I was under the impression that kwargs is passed by reference and,
since I'm only modifying it (rather than making it point to something
else) that the changes would be reflected back out to the thing being
passed in.

So, why doesn't this work the way I expect it to? And, is there some
other way to make this work to accomplish the same goal?

Thank you in advance,
Aaron



--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to