[Python-ideas] PEP 572: Assignment Expressions (post #4)

David Mertz mertz at gnosis.cx
Wed Apr 11 14:05:56 EDT 2018


How about this, Brendan?

_, x1, x2 = (D := b**2 - 4*a*c), (-b + sqrt(D))/2, (-b - sqrt(D))/2

I'm not sure I love this, but I don't hate it.

On Wed, Apr 11, 2018, 12:50 PM Brendan Barnwell <brenbarn at brenbarn.net>
wrote:

> On 2018-04-11 05:23, Clint Hepner wrote:
> > I find the assignments make it difficult to pick out what the final
> expression looks like.
>
>         I strongly agree with this, and for me I think this is enough to
> push
> me to -1 on the whole proposal.  For me the classic example case is
> still the quadratic formula type of thing:
>
> x1, x2 = (-b + sqrt(b**2 - 4*a*c))/2, (-b - sqrt(b**2 - 4*a*c))/2
>
>         It just doesn't seem worth it to me to create an expression-level
> assignment unless it can make things like this not just less verbose but
> at the same time more readable.  I don't consider this more readable:
>
> x1, x2 = (-b + sqrt(D := b**2 - 4*a*c)))/2, (-b - sqrt(D))/2
>
> . . . because having to put the assignment inline creates a visual
> asymmetry, when for me the entire goal of an expression-level statement
> is to make the symmetry between such things MORE obvious.  I want to be
> able to write:
>
> x1, x2 = (-b + sqrt(D)))/2, (-b - sqrt(D))/2 ...
>
> . . . where "..." stands for "the part of the expression where I define
> the variables I'm re-using in multiple places in the expression".
>
>         The new proposal does at least have the advantage that it would
> help
> with things like this:
>
> while x := some_function_call():
>         # do stuff
>
>         So maybe I'm -0.5 rather than -1.  But it's not just that this
> proposal
> "could be used to create ugly code".  It's that using it for
> expression-internal assignments WILL create ugly code, and there's no
> way to avoid it.  I just don't see how this proposal provides any way to
> make things like the quadratic formula example above MORE readable.
>
> --
> Brendan Barnwell
> "Do not follow where the path may lead.  Go, instead, where there is no
> path, and leave a trail."
>     --author unknown
> _______________________________________________
> 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/
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-ideas/attachments/20180411/5359f7f0/attachment.html>


More information about the Python-ideas mailing list