[Python-ideas] "While" suggestion

Arnaud Delobelle arnodel at googlemail.com
Thu Jul 3 21:09:00 CEST 2008


2008/7/3 Facundo Batista <facundobatista at gmail.com>:
> 2008/7/3 Stavros Korokithakis <stavros at korokithakis.net>:
>
>> while my_file.read(1024) as data:
>>   do_something(data)
>
> Python explicitly disallows inline assignment ("while
> a=myfile.read():") because of the error propensity when confusing it
> with the comparation ("=="). But here we're gaining the same
> advantage, without that risk.

For me, the main advantage of binding being provided by a statement
rather than an expression is not that it eliminates confusion with
test for equality.  The main advantage is that it prevents *sneaky*
(re)binding.  You can't bind a name from within an expression, it has
to be clearly advertised:

   foo = 'new value'

When I'm scanning code later I'm not going to miss these.  IMHO,
giving that up would be a mistake.

-- 
Arnaud



More information about the Python-ideas mailing list