python yield函数是什么
匿名提问者2023-10-12
python yield函数是什么
推荐答案
生成器函数是一种特殊类型的函数,具有yield关键字。yield的作用是将函数的执行状态保存,以便稍后可以从中断的地方继续执行。
要定义一个生成器函数,只需在函数体内使用yield关键字来产生值。以下是一个简单的例子:
def my_generator():
yield 1
yield 2
yield 3
在上面的例子中,my_generator是一个生成器函数,它可以生成数字1、2和3。
要使用生成器函数,可以像调用普通函数一样调用它,并将结果分配给一个变量:
gen = my_generator()
此时,gen成为一个生成器对象,您可以使用next()函数来获取生成器的下一个值:
print(next(gen)) # 输出:1
print(next(gen)) # 输出:2
print(next(gen)) # 输出:3
当生成器函数执行完成后,再次调用next()将引发StopIteration异常,表示没有更多的值可供生成。
除了使用next()函数,您还可以使用for循环来迭代生成器的值:
gen = my_generator()
for value in gen:
print(value)
# 输出:
# 1
# 2
# 3
生成器函数的特点之一是它们可以处理大型数据集,因为它们一次只生成一个值,并且不需要将整个数据集存储在内存中。