Document

python中Yield函数的理解

1:在实际应用中,在程序中列表长度过于庞大,占用系统较大的内存,对于这个问题,

  我们会用到 yield 函数(生成器)带yield的函数是一个生成器,而不是一个函数了,这个生成器有一个函数就是next函数,

  next就相当于“下一步”生成哪个数,这一次的next开始的地方是接着上一次的next停止的地方执行的,所以调用next的时候,

  生成器并不会从foo函数的开始执行,只是接着上一步停止的地方开始,然后遇到yield后,return出要生成的数

def foo():
     b = [3, 2, 4, 53, 33, 22]
     for i in b:
          print("遍历列表的数据", i)
          """
          Yield 相当于一个return 函数,跟ruturn 不同的是, 用了yield 函数,函数就变成了一个生成器,可以遍历函数,也可以用 next()
          next函数会用上一次暂停位置启动
          """
          yield 5


d = foo()
print("这是一个生成器", d)
print(next(d))
print(next(d))
print("**" * 20)
for i in foo():
     print(i)

 

posted @ 2021-12-24 10:27  苏什么苏  阅读(191)  评论(0编辑  收藏  举报