[Python-Dev] Assignment expression and coding style: the while True case

Ivan Pozdeev vano at mail.mipt.ru
Thu Jul 5 06:58:42 EDT 2018


On 05.07.2018 9:23, Serhiy Storchaka wrote:
> 05.07.18 01:51, Victor Stinner пише:
>> == Pattern 1, straighforward ==
>>
>> while True:
>>      line = input.readline()
>>      if not line:
>>          break
>>      ...
>>
>> IMHO here assingment expression is appropriate here. The code remains
>> straighfoward to read.
>>
>> while (line := input.readline()):
>>      ...
>
> We already have an idiom for this:
>
> for line in input:
>     ...
>

This is not strictly equivalent: it has internal caching unaffected by 
-u and you can't iterate and .read() at the same time.

Though in this specific case (the example is from Lib\base64.py AFAICS), 
the change to `for' is fine.

> _______________________________________________
> Python-Dev mailing list
> Python-Dev at python.org
> https://mail.python.org/mailman/listinfo/python-dev
> Unsubscribe: 
> https://mail.python.org/mailman/options/python-dev/vano%40mail.mipt.ru

-- 
Regards,
Ivan



More information about the Python-Dev mailing list