On Sun, Nov 01, 2009 at 05:53:31PM +0100, Terry Jones wrote:
> def simpleBackoffIterator(maxResults=10, maxDelay=5.0, now=True,
>                           initDelay=0.01, incFunc=None):
>     assert maxResults > 0
>     remaining = maxResults
>     delay = initDelay
>     incFunc = incFunc or partial(mul, 2.0)
>     
>     if now:
>         yield 0.0
>         remaining -= 1
>     while True:
>         if remaining == 0:
>             raise StopIteration
>         yield (delay if delay < maxDelay else maxDelay)
>         delay = incFunc(delay)
>         remaining -= 1

Since this is a generator function, it will automatically raise
StopIteration once control-flow falls off the end of the function, so
your while-loop could just be written:

    while remaining > 0:
        yield (delay if delay < maxDelay else maxDelay)
        delay = incFunc(delay)
        remaining -= 1

...making the function of the "remaining" counter just a little more
explicit.

_______________________________________________
Twisted-Python mailing list
Twisted-Python@twistedmatrix.com
http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python

Reply via email to