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():关闭并销毁迭代器对象。

© 版权声明
文章版权归作者所有,未经允许请勿转载。如内容涉嫌侵权,请在本页底部进入<联系我们>进行举报投诉!
THE END

















- 最新
- 最热
只看作者