Hi,
Please let me share my story of non experienced python programmer.
Last year I wanted to merge three dicts for config stuff.
I found very quickly the answer : a = {**b, **c, **d}
Sadly I was working on python 3.3 and that was nos possible to use this
syntax. I don't remember what I did next : use chain,; ChainMap, some
comprehension or some a.update() but I was missing the "upacking syntax".
The syntax {**b,**c} wasn't hard to remember. That wasn't something
known by mathematician, experienced programmers or some artist at the
first look maybe. But It's a clear syntax easy to remember. Easy because
two arterisk `**` in python is a well known syntax due to `**kwargs` in
many functions. And easy because at the end it's idiomatic.
Many things are not straightforward in python depending where you come
from :
if __name__ == '__main__': # Ugly
len(collection) et not collection.len() # Ugly depending your
programming background
item in collection instead of collection.contains(i) # same thing.
list/dict comprehensions...
At the end, only a few things are straightforward at the beginning, so
d1+d2 fails isn't a big deal since you will easy remember after a quick
initial search the idiom {**d1,***d2}
Jimmy
Le 18/03/2019 à 15:12, Antoine Pitrou a écrit :
> On Mon, 18 Mar 2019 14:06:53 +0000
> Rhodri James <[email protected]> wrote:
>> On 16/03/2019 12:01, Gustavo Carneiro wrote:
>>> Already been said, but might have been forgotten, but the new proposed
>>> syntax:
>>>
>>> new = a + b
>>>
>>> has to compete with the already existing syntax:
>>>
>>> new = {**a, **b}
>>>
>> That's easy. Whether it's spelt with "+" or "|" or pretty much anything
>> else, the operator version is clearer and cleaner. "{**a, **b}" is a
>> combination of operators and literal (display) syntax, and following
>> Guido's reasoning that makes it inherently harder to interpret. It's
>> also ugly IMHO, but that's me.
> The question is whether it's too hard or ugly for the use cases. In
> other words: where are the use cases where it's frequent enough to
> merge dicts that a nicer syntax is required?
>
> (also, don't forget you can still use the copy() + update() method)
>
> Regards
>
> Antoine.
>
>
> _______________________________________________
> Python-ideas mailing list
> [email protected]
> https://mail.python.org/mailman/listinfo/python-ideas
> Code of Conduct: http://python.org/psf/codeofconduct/
_______________________________________________
Python-ideas mailing list
[email protected]
https://mail.python.org/mailman/listinfo/python-ideas
Code of Conduct: http://python.org/psf/codeofconduct/