On Sun, Jun 10, 2018 at 08:08:13AM -0400, Juancarlo Añez wrote: > > while (condition := expression) as flag: > > ... > > > > Ah! Are the parenthesis necessary there?
It's your PEP, you tell us. > > Accepting "while/if as name" would remove much (but not all) of the > > motivation for assignment expressions, while accepting assignment > > expressions would make a dedicated while/if as name syntax unnecessary. > > Most of the arguments in favor of ':=' have been through examples of > generators in which the introduced name is used within, with the if/while > case often forgotten. Indeed. I think that the generator/comprehension use-cases for assignment expressions are not the most compelling. They're important, but at the point you need to use assignment inside a comprehension, there's a good argument that it *may* be time to refactor to a loop. I think the while/if examples are even more important. > There can be cases in which combining both syntaxes is useful: > > x = None > while compute(x := v for v in next_series_value(x)) as comp: > ... > x = comp But if you have assignment expressions, you don't need "as". x = None while comp := compute(x := v for v in next_series_value(x)): ... x = comp > Finding a real-world example of something like the above synthetic example > would be in favor of the orthogonality. As the PEP author, that's your job. -- Steve _______________________________________________ Python-ideas mailing list Python-ideas@python.org https://mail.python.org/mailman/listinfo/python-ideas Code of Conduct: http://python.org/psf/codeofconduct/