On Wed, Jun 27, 2018 at 03:41:23PM +0200, Antoine Pitrou wrote:
Why is this discussion talking about comprehensions at all? Is there a decent use case for using assignments in comprehensions (as opposed to language lawyering or deliberate obfuscation)?
Yes. The *very first* motivating example for this proposal came from a comprehension.
I think it is both unfortunate and inevitable that the discussion bogged down in comprehension-hell. Unfortunate because I don't think that the most compelling use-cases involve comprehensions at all. But inevitable because *comprehensions are the hard case*, thanks to the (justifiable!) decision to implement them as implicit hidden functions.
In my opinion, the really two BIG wins for assignment expressions are while loops and cascades of if... blocks. Tim Peters has also given a couple of good examples of mathematical code that would benefit strongly from this feature.
Going back a few months now, they were the examples that tipped me over from the opinion
"Oh, just re-write the comprehension as a loop"
to the opinion
"You know, I think this feature actually is useful... and as a bonus, you can keep using the comprehension"
But that requires that we get the comprehension scoping right. Not just leave it as an unspecified implementation detail.