On Fri, 26 Oct 2012 19:12:17 -0400, Devin Jeanpierre wrote: > I would like a better iter(), rather than a better while loop. It is > irritating to pass in functions that take arguments, and it is > impossible to, say, pass in functions that should stop being iterated > over when they return _either_ a None or a, say, False.
Write a trivial helper function. Not everything has to be a one-liner or a built-in. def iterate_until_none_or_false(func, *args, **kwargs): while True: x = func(*args, **kwargs) # Halt if x is None or False, but not other falsey values. if x is None or x is False: return yield x for x in iterate_until_none_or_false( some_function, 1, 2, "c", spam="yummy"): process(x) -- Steven -- http://mail.python.org/mailman/listinfo/python-list