Feb. 7, 2014
6:03 a.m.
On 2/6/2014 11:15 PM, Terry Reedy wrote:
On Fri, Feb 7, 2014 at 1:36 PM, Terry Reedy
def __next__(self): try: x = self.func() except Exception as exc: if isinstance(exc, self.sentinel): raise StopIteration from None else: raise
I just realized that the above is unnecessarily complicated because the expression that follows 'except' is not limited to a builtin exception class name or tuple thereof. (I have never before had reason to dynamically determine the exception to be caught.) So, using a third parameter, replace the 5 lines with 2. except self.stop_exception: raise StopIteration from None
if x == self.sentinel: raise StopIteration else: return x
-- Terry Jan Reedy