Generator hack to avoid an exception

Kruno Saho kruno.saho at gmail.com
Fri Mar 29 19:27:19 CET 2013


I understand that 'with ignore(...)' will be coming out in Python 3.4 next year, but in the mean time I have added a yield at the end of a particular coroutine.

Here is the 'fixed' version:
http://pastebin.com/c8kbqc4w

Here is the original version, which I believe is more pythonic:
http://pastebin.com/38Fb7N0Y

The reason being is to have my code outside the generator clean and flat(er). I feel that this little hack, while irritating, is more pythonic than a try/except, which only breaks out of an infinite loop, which was not there to begin with. I could replace the infinite loop with an iteration over a range, but that in itself is doing more work unnecessarily, and is just as hackish. I would not do this if the coroutine controlled any resources, as they would need to be cleaned up. I have not seen this issue addressed in PEP8.

What is the consensus on this issue being more/less pythonic, and how acceptable is this practice?

Thanks.



More information about the Python-list mailing list