temp = yield i 这句话的意思?

def test():
    i = 0
    while i < 5:
        temp = yield i
        # print(temp)
        i+=1

t = test()

print(t.__next__())

print(t.__next__())

print(t.__next__())

print(t.send('LW'))

此时控制台打印:

0
1
2
3

-------------------------------------------

放开print 控制台打印

0
None
1
None
2
LW
3

说明了temp = yield i 这句话并不是将右边的值赋给temp 

temp 是接受程序下次从这里开始执行时生成器通过send函数发过来的值。

但是调用send方法前必须先启动生成器才行哦, 不然会崩溃, 调用next()或者 send(None) 来启动生成器。 

 

 

 

 

 

 

 

 

 

posted @ 2018-04-27 15:02  liuw_flexi  阅读(183)  评论(0编辑  收藏  举报