yield表达式

x=yield 返回值

def dog(name):
    print('道哥%s准备吃东西啦...' %name)
    while True:
        # x拿到的是yield接收到的值
       x = yield # x = '肉包子'
        print('道哥%s吃了 %s' %(name,x))


g=dog('alex')
g.send(None) # 等同于next(g) 第一步必须要先send none

g.send(['一根骨头','aaa'])
g.send('肉包子')
g.send('一同泔水')
g.close()
g.send('1111') # 关闭之后无法传值

ps:next(g) = g.send(None) 关闭之后无法继续传值。

案例:

def func():
    print('start.....')
    x=yield 1111  # x='xxxxx'
    print('哈哈哈啊哈')
    print(x)
    y=yield 22222
g=func()
res=next(g)
print(res)
#yield 返回1111 接收了xxxx并赋值给x
res=g.send('xxxxx')
print(res)

posted @ 2020-03-25 16:57  江湖有梦  阅读(220)  评论(0编辑  收藏  举报