[Python-ideas] Inline changes to context, or PEP572
steve at pearwood.info
Mon May 14 08:55:28 EDT 2018
On Sat, May 12, 2018 at 08:13:01PM -0400, Juancarlo Añez wrote:
> A new thread just to suggest taking the discussion about PEP572 well beyond
> python-ideas (PyConn is good for that).
> The least anyone should want is a language change that immediately gets
> tagged on the networks as "don't use", or "use only for...", etc.
*Every* feature should be tagged as "use only for ...".
Every feature has uses that it works for, and uses that are
inappropriate. With old features, we rarely think about the bad uses.
(When was the last time you needed to tell someone not to use a while
loop when a for loop over an iterable was better? Apart from beginners
reading "Learn Python The Hard Way", I've never seen anyone do that.)
With new features, some people do nothing but think about the bad uses.
> To be honest, I'll likely be on the "don't use :=, unless" band of pundits
As we all should.
Just as we didn't run out and change every if...else block to try to
squeeze it into a ternary if operator, or turn every for loop into a
comprehension, so we shouldn't use binding expressions unless they make
the code better.
> (already a filibuster). ":=" is like going back to "reduce()", which is
> almost defunct thanks to.. us!
I don't think that it is nice of you to gloat about (almost) taking away
a useful, much-beloved functional programming idiom. For some people,
this comes across as "I want to make your code worse".
Fortunately, reduce is alive and well in the functools module.
More information about the Python-ideas