三分钟掌握Python 中 yield 的用法

yield 是一个关键字,它可以让一个函数返回一个生成器对象,而不是一个值。生成器对象是一种特殊的迭代器,它可以在需要时产生多个值,而不需要一次性存存储所有的值。这样可以节省内存空间,提高效率。

使用 yield 的函数被称为生成器函数,它的语法格式如下:

def generator_function():
    # 生成器函数的代码
    while True:
        # 生成器函数的逻辑
        yield value # 返回一个值

在调用生成器函数时,可以使用 for 循环或者 next() 方法来遍历或者获取生成器对象中的值。例如:

# 创建一个生成器对象
g = generator_function()
# 使用 for 循环遍历生成器对象中的值
for x in g:
    print(x)
# 输出:
# 1
# 2
# 3

# 使用 next() 方法获取生成器对象中的下一个值
print(next(g))
# 输出:
# 4

print(next(g))
# 输出:
# 5

print(next(g))
# 输出:
# StopIteration # 迭代结束

注意,在调用 next() 方法时,如果没有更多的值可迭代,会抛出 StopIteration 异常。

除了 yield 关键字外,生成器函数还有一些其他的方法和属性,例如:

  • send(value):向生成器内部发送一个值,改变当前的状态。
  • throw(type, value, traceback):向外部抛出一个异常。
  • close():关闭并销毁生成器对象。
  • iter():返回一个迭代器对象。
  • next():返回下一个值,并继续迭代。
  • close():关闭并销毁迭代器对象。

三分钟掌握Python 中 yield 的用法

© 版权声明
THE END
如果内容对您有所帮助,就支持一下吧!
点赞0 分享
溪宝宝的头像 - 鹿快
评论 共1条

请登录后发表评论