On Thu, Apr 26, 2018 at 07:16:28PM +1200, Greg Ewing wrote:
> Tim Peters wrote:
> >As a statement in a program (as opposed to typed at a shell),
> >"a := 3" has the unnecessary (in that context) property of returning
> >(and discarding 3), so it's better style to use "a = 3" in that
> >context.
> 
> That seems like a post-hoc justification. If := were the one
> and only assignment symbol, the compiler could easily optimise
> away the extra DUP_TOP or whatever is involved.

Its still bad form to rely on compiler-dependent optimizations which 
aren't part of the language specification.

And to steal an earlier idea from Tim, it is especially unfortunate if 
you copy

data := sorted(huge_list_with_billions_of_items)

from a program and paste it into your REPL, then can't type again for an 
hour or two.

The longer I think about this, the more I am convinced that having two 
forms of assignment, one a statement with no return value and the other 
an expression with a return value, is a feature, not a wart or bug. Yes, 
it does add some complexity to the language, but it is *useful* 
complexity. If all complexity was bad, we'd still be programming by 
flicking toggle switches.



-- 
Steve
_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to