Python教程

python之yield

本文主要是介绍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之yield的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!