python - Convert a while loop to something reusable -
i find myself using pattern this:
num_repeats = 123 interval = 12 _ in xrange(num_repeats): result = ... if result meets condition: break time.sleep(interval) else: raise failed despite multiple attempts
basically, repeats code until correct result returned, or counter expires.
although works, looks verbose me. possible "parametrize" loop reusable function or context manager, example
with repeat(num_repeats, interval): code
or maybe there's in standard library trick?
you can use generator sleeps before returning repeated results. advantage caller still genuine loop, break
, continue
, else
semantics still in tact.
def trickle_range(num_repeats, interval): yield 0 k in xrange(1, num_repeats): time.sleep(interval) yield k k in trickle_range(num_repeats, interval): ... stuff, iterate or break ...
Comments
Post a Comment