On Sat, Jun 23, 2018 at 1:48 PM, Steven D'Aprano
I can't say I've done a broad survey, but the third-party documentation I've read on comprehensions typically glosses over the scoping issues without mentioning them. To the extent that scoping is even hinted at, comprehensions are treated as expressions which are exactly equivalent to re-writing them as a for-loop in the current scope.
Even first-party documentation elides that distinction. The same inaccurate-but-simple equivalency - even using the word "equivalent" - comes up here: https://docs.python.org/3/howto/functional.html?highlight=equivalent#generat... So I'm very sympathetic to the desire to have assignment expressions inside comprehensions behave like assignment expressions outside comprehensions. The trouble is that they are then _not_ the same as other names inside comprehensions. One way or another, there's a confusing distinction, especially at class scope. Unless this comes with an actual semantic change that affects existing code, there is going to be a bizarre disconnect *somewhere*, and it's just a matter of where. ChrisA