关于yield语法糖的运行时说明

Posted yeni

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于yield语法糖的运行时说明相关的知识,希望对你有一定的参考价值。

yield只能定义在function中,用来返回一个generator。当知道函数将返回一组只需读取一次的巨大值时,它会很方便。来看下以下例子

def gen2():
    print('begin....')
    for x in range(2):
        print('aa')
        yield x
        print('bb')
        yield x+1
        print('cc')
    print('end....')

factory = gen2()

依次运行N次以下代码时,将输出什么内容?

next(factory)

第一次

begin..
aa
0

第二次

bb
1

第三次

cc
aa
1

第四次

bb
2

第五次之后
``
cc
end...
Traceback (most recent call last):

File "", line 1, in
next(factory)

StopIteration
``

总结:
当运行含有yield的generator时,每次迭代会在遇到一个yield时停止。

以上是关于关于yield语法糖的运行时说明的主要内容,如果未能解决你的问题,请参考以下文章

我可以跳过询问棉花糖的运行时权限吗?

有和没有语法糖的 Python 装饰器之间的区别?

抓住异步编程async/await语法糖的牛鼻子

抓住异步编程async/await语法糖的牛鼻子: SynchronizationContext

Scala中语法糖的使用|推荐

python 此文件用于显示语言中语法糖的中文文章。