python yield yield from

def numFun():
    dd=yield  1
    print(dd)
    aa=yield 2
    print(aa)
    yield 3
    return "ok"
ll1=[1,2,3,4]
dict1={"aa":"aa1","vc":"3eee"}

def myGen(*args,**kwargs):
    for gen2 in args:
        for a in gen2:
            yield a
        #yield  from gen2 ##此句相当于上面两句

if __name__=="__main__":
    genNum=numFun()
    ##用send
    bb1=genNum.send(None)##启动生成器 此时bb1=1
    print(bb1)
    bb=genNum.send(5555)##此时将5555给dd 并bb=2
    print(bb)
    bb2 = genNum.send(555511)
    print(bb2)
    ##用next
    print(next(genNum))

    for a in myGen(ll1,dict1,range(5)):
        print(a)

 

posted @ 2019-12-03 10:10  howhy  阅读(68)  评论(0)    收藏  举报