[Python-ideas] adding dictionaries

Andrew Barnert abarnert at yahoo.com
Tue Jul 29 00:19:22 CEST 2014


On Jul 28, 2014, at 15:15, Alexander Heger <python at 2sn.net> wrote:

>> In all honesty, I'd suggest that code which looks bad enough to
>> warrant even considering this feature is probably badly in need of
>> refactoring, at which point the problem will likely go away.
> 
> I often want to call functions with added (or removed, replaced)
> keywords from the call.
> 
> args0 = dict(...)
> args1 = dict(...)
> 
> def f(**kwargs):
>    g(**(arg0 | kwargs | args1))
> 
> currently I have to write
> 
> args = dict(...)
> def f(**kwargs):
>    temp_args = dict(dic0)
>    temp_args.update(kwargs)
>    temp_args.update(dic1)
>    g(**temp_args)

No, you just have to write a one-liner with ChainMap, except in the (very rare) case where you're expecting g to hold onto and later modify its kwargs.
> 
> It would also make the proposed feature to allow multiple kw args
> expansions in Python 3.5 easy to write by having
> 
> f(**a, **b, **c)
> be equivalent to
> f(**(a | b | c))
> 
> -Alexander
> _______________________________________________
> Python-ideas mailing list
> Python-ideas at python.org
> https://mail.python.org/mailman/listinfo/python-ideas
> Code of Conduct: http://python.org/psf/codeofconduct/


More information about the Python-ideas mailing list