yield 生成器即方法

来源:互联网 发布:电脑网络连接出现红叉 编辑:程序博客网 时间:2024/04/30 20:42
def func():x = yieldprint '第一次哦%s'%xy = yield 4print '第二次哦%s'%xt =func()print t.next()print t.send('AAAAAA')print t.send(5)yield 会把后面的值返回,并且返回过后就暂停,但yield 不会将他后面的值传给等号左边的值,而是返回 None。send()方法会将值传给暂停的 yield 并让它返回给等号左边的值,同时 send()也会促使 yield 执行一次。当执行完最后一次 yield 再调用 next()或者 send() 会返回一个 StopIteration 异常。#coding=utf-8def func():    x = yield 'x返回值'    print x    y = yield 'y返回值'    print y     f = func()print f.next()#print f.next()print f.send('SEND')print f.next()输出为:x返回值SENDy返回值NoneTraceback (most recent call last):  File "/tmp/yieldDemo.py", line 12, in <module>    print f.next()StopIteration

0 0
原创粉丝点击