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

Andrés Delfino adelfino at gmail.com
Mon Apr 9 07:42:20 EDT 2018


Sorry, I didn't know that kwargs unpacking in dictionaries displays don't
raise a TypeError exception.

On Mon, Apr 9, 2018 at 8:23 AM, Daniel Moisset <dmoisset at machinalis.com>
wrote:

> 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
> <https://maps.google.com/?q=1+Fore+St,+London,+EC2Y+9DT&entry=gmail&source=g>
>
> 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/ad380132/attachment-0001.html>


More information about the Python-ideas mailing list