当前位置: 首页 > 图灵资讯 > 行业资讯> python中的yield详解

python中的yield详解

发布时间:2025-11-28 20:55:42

在最后一篇文章中,我们谈到了python中的return。它在程序函数中返回某个值。返回后,函数不会继续执行并完全结束。你知道python中还有另一种返回值的方法吗?yield。带yield的函数是迭代器。当函数返回到某个值时,它将停留在某个位置。返回函数值后,它将继续在前面停留的位置执行,直到程序结束。

yield的功能:返回一个可以用来迭代(for循环)的生成器,其应用场景通常是一个包含循环函数的需要返回一系列值的生成器。

一、迭代器迭代器有两种基本方法:创建迭代器iter() 和 next()访问迭代器。可直接作用于for循环的对象统称为可迭代对象:Iterable

一种是集合数据类型,如list、tuple、dict、set、str等;

一种是generator,包括生成器和带yield的generator function

迭代器对象从集合的第一个元素开始访问,直到所有元素被访问结束。迭代器只能向前移动,不能向后移动。

二、生成器

如果列表元素可以按照某种算法计算,后续元素可以在循环过程中不断计算,则无需创建完整的列表,从而节省大量空间。在Python中,这种循环计算机制称为生成器:generator。

三、yield:是生成器函数,返回是迭代器

yield表达式:
defsquare():

forxinrange(4):

yieldx**2

square_gen=square()

forxinsquare_gen:

print(x)
例子:生成器函数
#包含yield关键字,将成为生成器函数
#调用函数不会执行语句
deffoo():
print('Starting...')
whileTrue:
res=yield4
print("res:",res)
#未执行以下调用函数。您可以先注释以下句子
#运行代码观察效果
g=foo()
print("第一次调用执行结果:")
print(next(g))
print("*"*100)
print("第二次调用执行结果:")
print(next(g))
print("*"*100)
第一次调用执行结果:

Starting...

4

********************************************************************

第二次调用执行结果:

res:None

4

********************************************************************

通过迭代器、生成器和yield的介绍,你对yield你知道什么吗?yield迭代器和生成器的使用是不可分割的,迭代器和生成器的运行也是不可分割的yield。

相关文章

python中的yield详解

python中的yield详解

2025-11-28
return和yield有什么区别吗?

return和yield有什么区别吗?

2025-11-28
python中的shuffle怎么用?

python中的shuffle怎么用?

2025-11-28
在python中如何打乱数据?

在python中如何打乱数据?

2025-11-28
如何用python发送邮件给多人?

如何用python发送邮件给多人?

2025-11-27
python中如何将字符串分割成列表?

python中如何将字符串分割成列表?

2025-11-27