python之yield
作者:互联网
一.yield功能
1.使函数变成一个生成器。
2.相当于return,返回值。
3.相当于容器容易接收一个值。
二.例子
1.代码
def func(name):
food = []
while True:
x = yield food #每一个yield都是先弹上一轮的food,然后挂起等待,直到下一个send传值运行
print("{0} 吃 {1}".format(name,x))
food.append(x)
f = func("狗哥")
res = f.send(None) #相当于f.__next__()
print(res)
res = f.send("骨头")
print(res)
res = f.send("粥")
print(res)
#[]
#狗哥 吃 骨头
#['骨头']
#狗哥 吃 粥
#['骨头', '粥']
2. 讲解
每个yield会先返回值,然后挂起函数等待,直到下一次send函数传值运行下面的代码,结束这个yield的生命周期;随之进入下个yield先返回上次运行结果的值,挂起等待……
标签:狗哥,python,res,send,food,yield,print 来源: https://www.cnblogs.com/ntzq-blogs/p/16219825.html