关于yield你只需要知道这2点

编程入门 行业动态 更新时间:2024-10-26 04:32:38

关于yield<a href=https://www.elefans.com/category/jswz/34/1684859.html style=你只需要知道这2点"/>

关于yield你只需要知道这2点

1.yield是放在函数里面的,且带有yield的函数就叫做生成器,这时函数就成了一个对象,而不能把它作为函数来对待

def foo(num):print("introduction:")while:if num < 10:num += 1yield num
g = foo()

看上面的代码,我们把函数赋值给了g,其实就是让g成为一个生成器对象。这时就不要把g看做一个函数了。

2.yield的作用相当于一个return(简单来看),会返回一个值,同时停止所在函数的运行。如果是在循环里面,则返回一个值后,下次一循环会在上次return的地方继续开始而不是从函数的开头开始运行。

for n in g(0):print(n)

运行上面的代码,得到的输出是从1-10,原因就在于第一次运行时计算num得到1,然后yield返回一个1并且打印出来。之后第二次循环的原因就是,g这个生成器对象中的循环还没有结束,它会在yield返回num=1后继续下一次训话,即判断num<1,继续让num+1得到num=2并返回2,所以会打印出2。如此循环知道g内部的循环结束为止。

更多推荐

关于yield你只需要知道这2点

本文发布于:2023-12-06 03:59:01,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1666369.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:你只需要   yield

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!