Sunday, April 28, 2013

generator in python

class GeneratorDemoException(Exception):
    def __str__(self):
        return "GeneratorDemoException occured"

def generator_demo():
    ret_1 = yield "demo of generator:"
    print "ret_1=",ret_1
    ret_2 = yield "call me with send(arg) then I set ret_1 with arg"
    print "ret_2=",ret_2
   
    try:
        ret_3 = yield "call me with next() and I always set ret_2 as None"
    except GeneratorDemoException,e:
        ret_3 = "failed to yield"
    print "ret_3=",ret_3
   
generator = generator_demo()
print generator.next()
print generator.send("arg_to_set_ret1")
print generator.next()
try:
    ret_from_throw = generator.throw(GeneratorDemoException,"test finished")
except:
    pass
   

No comments:

Post a Comment