On 21/05/18 13:22, Juancarlo Añez wrote:
while ((v = get_something()) != INCONVENIENT_SENTINEL)
do_something(v);
The current pattern in Python would be something like:
v = get_something()
while v != INCONVENIENT_SENTINEL:
do_something(v)
v = get_something()
Actually more usually
while True:
v = get_something()
if v == INCONVENIENT_SENTINEL:
break
do_something(v)
Inelegant and, as has been pointed out, frankly misleading about the
nature of the loop, but at least you can tell what's going on fairly
straightforwardly.
With "as" allowed in "while", they pattern might be:
while get_something() as v:
if v == INCONVENIENT_SENTINEL:
break
do_something(v)
The discussion isn't over, so it could also be:
while (get_something() as v) != INCONVENIENT_SENTINEL:
do_something(v)
These two are somewhat different things.
--
Rhodri James *-* Kynesim Ltd
_______________________________________________
Python-ideas mailing list
Python-ideas@python.org
https://mail.python.org/mailman/listinfo/python-ideas
Code of Conduct: http://python.org/psf/codeofconduct/