Davin Potts added the comment:

After pondering it for two days and coming back to it with hopefully "fresh 
eyes", I believe that changing the for-loop to a while-loop is not overall 
easier to understand -- I would lean towards keeping the for-loop.

I do think the change to the while-loop very much made the exception handling 
logic clearer but seeing the while-loop with the "manual" invocation of next 
and incrementing of the variable i and re-use of i as a signal to break out of 
a loop (setting i = None) made other things less clear.  My belief is that 
someone reading this method's code for the first time will read the for-loop 
version as, "try to loop through the enumerated tasks and if anything goes 
wrong then set the next position in the cache to 'failed'".  That top-level 
reading is, I think, not quite as easy with the while-loop.  Without the 
exception handling that we add in this patch, the original code used the 
for-loop and would, I think, have looked weird if it had tried to use a 
while-loop -- I think that's a sign that the for-loop is likely to be more 
easily understood by a first-time reader.

Though I am not sure it really matters, the while-loop version would only help 
end the processing of further jobs if an exception occurs in the iterator 
whereas the for-loop version might help if exceptions occur in a couple of 
other places.  We do not have a clear motivation for needing that however.

----------

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue23051>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to