Advanced features Builder 2

In addition to offering send transmission parameters of the aforementioned method, there are two important methods

close ():. After closing off Builder Builder, if the latter would like values ​​from the builder, will complain

throw (): transfer to the interior of the generator exceptions 

 

def gen_func():
    yield 1
    yield 2
    yield 3

IF  the __name__ == ' __main__ ' :
     # generates a generator object 
    Gen =   gen_func ()
     Print (Next (Gen))   # . 1 
    gen.close ()
     Print (Next (Gen))   # after close gen, error messages StopIteration

 

def gen_func():
    yield 1
    yield 2
    yield 3


IF  the __name__ == ' __main__ ' :
     # generates a generator object 
    Gen = gen_func ()
     Print (Next (Gen))   # . 1 
    gen.throw (Exception, ' error .... ' )   # throw exceptions 
    Print (Next ( Gen))   # will not be executed,

 

def gen_func():
    try:
        yield 1
    except:
        pass
    yield 2
    yield 3


IF  the __name__ == ' __main__ ' :
     # generates a generator object 
    Gen = gen_func ()
     Print (Next (Gen))   # . 1 
    gen.throw (Exception, ' error .... ' )   # throw exceptions 
    Print (Next ( Gen))   # . 3, in the capture exception generator, normally performed here

Guess you like

Origin www.cnblogs.com/z-qinfeng/p/12094281.html