yield浅析-Python3

yield 浅析

先来一段代码:

def fun1():
  for i in range(5):
    yield i
    print("继续调用继续执行")

gen1 = fun1()
print(gen1)

for i in gen1:
  print(i)

"""# 执行结果:
<generator object fun1 at 0x0365DEB0>
0
继续调用继续执行
1
继续调用继续执行
2
继续调用继续执行
3
继续调用继续执行
4
继续调用继续执行
"""

直接得到结果

  1. yield存在于函数体中, 用于返回生成器对象, 使用了yield的函数就叫做生成器.
  2. 迭代生成器对象时, 每迭代一次便返回函数体继续执行, 直到没有结果为止
  3. 另外有 next(迭代对象[, 默认参数]) 可用于迭代生成器对象, 但每次只会得到一次结果, 多次迭代可得到全部结果, 结束时会返回异常[或默认参数].
posted @ 2019-08-06 21:56  IamnotHappy  阅读(333)  评论(0编辑  收藏  举报