[Python-ideas] Accepting multiple mappings as positional arguments to create dicts
Andrés Delfino
adelfino at gmail.com
Sun Apr 8 17:18:15 EDT 2018
Hi!
I thought that maybe dict could accept several mappings as positional
arguments, like this:
class Dict4(dict):
> def __init__(self, *args, **kwargs):
> if len(args) > 1:
> if not all([isinstance(arg, dict) for arg in args]):
> raise TypeError('Dict4 expected instances of dict since
> multiple positional arguments were passed')
>
> temp = args[0].copy()
>
> for arg in args[1:]:
> temp.update(arg)
>
> super().__init__(temp, **kwargs)
> else:
> super().__init__(*args, **kwargs)
>
AFAIK, this wouldn't create compatibility problems, since you can't pass
two positional arguments now anyways.
It would be useful to solve the "sum/union dicts" discussion, for example:
requests.get(url, params=dict(params, {'foo': bar})
Whar are your thoughts?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-ideas/attachments/20180408/2434cfe8/attachment.html>
More information about the Python-ideas
mailing list