39.Python:yield的表达式形式


# x = yield 返回值
# def dog(name):
# print('dog %s' % name)
# while True:
# x = yield # x得到的不是yield的返回值,而是yield接收到的值
# print('dog %s eat %s' % (name, x))
#
#
# g = dog('alex')
# g.send(None) # 等同于next(g)
#
# g.send('food') # g.send()给yield赋值
# g.send('1')
# g.send('2')
# g.close() # 关闭后传值会报错

# ---------------------------------------------------------------
def dog(name):
food_list = []
print('dog %s' % name)
while True:
x = yield food_list
print('dog %s eat %s' % (name, x))
food_list.append(x)


g = dog('alex')
res = g.send(None) # 等同于next(g)

res = g.send('food') # g.send()给yield赋值
res = g.send('1')
res = g.send('2')
g.close() # 关闭后传值会报错
print(res)
posted @ 2021-06-25 14:38  SEPIA  阅读(40)  评论(0)    收藏  举报