[Python-ideas] Accepting multiple mappings as positional arguments to create dicts

Daniel Moisset dmoisset at machinalis.com
Mon Apr 9 07:23:30 EDT 2018


In which way would this be different to {**mapping1, **mapping2,
**mapping3} ?

On 8 April 2018 at 22:18, Andrés Delfino <adelfino at gmail.com> wrote:

> 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?
>
> _______________________________________________
> 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/
>
>


-- 
Daniel F. Moisset - UK Country Manager - Machinalis Limited
www.machinalis.co.uk <http://www.machinalis.com>
Skype: @dmoisset T: + 44 7398 827139

1 Fore St, London, EC2Y 9DT

Machinalis Limited is a company registered in England and Wales. Registered
number: 10574987.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-ideas/attachments/20180409/3641b566/attachment.html>


More information about the Python-ideas mailing list