python yield send

来源:互联网 发布:packetsender mac 编辑:程序博客网 时间:2024/06/14 23:39
def cd(n):
    while n>=0:
        print("first n:"+str(n))
        newn = yield n
        print("second n:"+str(n))
        print("fist newn:"+str(newn))
        if newn is not None:
            n = newn*2
        else:
            n-=1
        print("second newn:"+str(newn))


y = cd(5)
for x in y:
    print(x) #5 3 2 1
    if x == 5:

        y.send(2)


genertaor.send(value)

generator的send函数作用:恢复之前挂起的yield,并将参数value成为当前yield表达式的结果,send函数返回下一个yield的结果(相当于执行了一次next)

0 0
原创粉丝点击