python的生成器与yield

Posted Valentino的博客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python的生成器与yield相关的知识,希望对你有一定的参考价值。


一个包含yield的函数,执行后可以获取一个需要next来推动执行的代码流。
代码流好比牙膏,next好比在挤牙膏。
def odd():
    print(step 1)
    yield 1
    print(step 2)
    yield(3)
    print(step 3)
    yield(5)

 

调用该generator时,首先要生成一个generator对象,然后用next()函数不断获得下一个返回值:

>>> o = odd()
>>> next(o)
step 1
1
>>> next(o)
step 2
3
>>> next(o)
step 3
5
>>> next(o)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
StopIteration

 


以上是关于python的生成器与yield的主要内容,如果未能解决你的问题,请参考以下文章

python中yield与return的用法与区别

python生成器之yield

python之yield与装饰器

3-6 Python生成器与协程

Python中生成器,迭代器,以及一些常用的内置函数.

Python学习之yield表达式三元表达式与生成式