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/

Reply via email to