from types import * def even(x): if x == 0: yield "red" else: yield odd(x-1) def odd(x): if x == 0: yield "blue" else: yield even(x-1) def foo(generator): if isinstance(generator, GeneratorType): generator = generator.next() foo(generator) else: print generator >> g = odd(5) >> foo(g) 'red' >>