前言
yield的英文单词意思是生产,刚接触Python的时候感到非常困惑,一直没弄明白yield的用法。最近又重新学习了下,所以整理了下面这篇文章,供自己和大家学习参考,下面话不多说了,来一起看看详细的介绍吧。
先来看一个例子
def foo():
print("starting...")
while True:
res = yield
print("res:",res)
g = foo()
next(g)
在上面的例子里,因为foo函数中有yield关键字,所以foo()函数的执行结果g是一个生成器,此时可以使用next(g)或者g.next()方法触发生成器的执行
程序的执行结果为
starting...
使用next(g)触发生成器的执行时,程序会按照正常的顺序从上向下执行,遇到yield,程序就会暂停
并把yield后面所接的值返回
打印next(g)的执行结果
def foo():
print("starting...")
while True:
res = yield
print("res:",res)
g = foo()
print(next(g))
程序执行结果
starting...
None
在上面的例子里,执行一次next(g)方法,程序暂停在yield那一行,此时再次调用next(g),程序会从yield语句那一行继续向下运行
修改上面的代码,多调用几次next方法,并打