Seems to me it's much more obvious that "name:=expression" is assigning expression to name than "name!expression".  The ! is also confusing because "!=" means "not equals", so the "!" symbol is already sort of associated with "not"

On Fri, Apr 6, 2018 at 11:27 AM, Cammil Taank <ctaank@gmail.com> wrote:
I'm not sure if my suggestion for 572 has been considered:

``name! expression``

I'm curious what the pros and cons of this form would be (?).

My arguments for were in a previous message but there do not seem to be any responses to it.

Cammil

On Fri, 6 Apr 2018, 16:14 Guido van Rossum, <guido@python.org> wrote:
On Fri, Apr 6, 2018 at 7:47 AM, Peter O'Connor <peter.ed.oconnor@gmail.com> wrote:
Hi all, thank you for the feedback.  I laughed, I cried, and I learned.  

You'll be a language designer yet. :-)
 
However, it looks like I'd be fighting a raging current if I were to try and push this proposal.  It's also encouraging that most of the work would be done anyway if ("Statement Local Name Bindings") thread passes.  So some more humble proposals would be:

1) An initializer to itertools.accumulate 
functools.reduce already has an initializer, I can't see any controversy to adding an initializer to itertools.accumulate

See if that's accepted in the bug tracker.
 
2) Assignment returns a value (basically what's already in the "Statement local name bindings" discussion)
`a=f()` returns a value of a
This would allow updating variables in a generator (I don't see the need for ":=" or "f() as a") but that's another discussion

Please join the PEP 572 discussion. The strongest contender currently is `a := f()` and for good reasons.

--
--Guido van Rossum (python.org/~guido)
_______________________________________________
Python-ideas mailing list
Python-ideas@python.org
https://mail.python.org/mailman/listinfo/python-ideas
Code of Conduct: http://python.org/psf/codeofconduct/