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时停止。

相关文章:

  • 2023-01-12
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-02-04
  • 2022-02-15
  • 2021-08-04
  • 2021-09-25
猜你喜欢
  • 2021-04-03
  • 2022-12-23
  • 2022-12-23
  • 2021-05-28
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案