[Python-Dev] (name := expression) doesn't fit the narrative of PEP 20 (original) (raw)

Chris Angelico rosuav at gmail.com
Wed Apr 25 18:38:51 EDT 2018


On Thu, Apr 26, 2018 at 8:08 AM, Antoine Pitrou <solipsis at pitrou.net> wrote:

On Wed, 25 Apr 2018 16:55:43 -0500 Tim Peters <tim.peters at gmail.com> wrote:

To my eyes, this is genuinely harder to follow, despite its relative brevity: while total != (total := total + term): Does it even work? Perhaps if the goal is to stop when total is NaN, but otherwise?

Yes, it does, because the first "total" is looked up before the rebinding happens. It's 100% unambiguous to the compiler... but still pretty unclear to a human. And I think the multiple use of 'total' is to blame for that. So I agree with Tim that this particular example is better in longhand.

ChrisA



More information about the Python-Dev mailing list