首页 > 学院 > 开发设计 > 正文

pythonyield理解

2019-11-14 17:09:51
字体:
来源:转载
供稿:网友

在别人的代码中看到yield这个关键字,看了几篇资料,说一下个人理解。

 

包含yield 关键字的函数成为一个迭代器,yield跟return的位置一样,只不过每次返回结果后,并没有退出,而是等待下一次迭代,下一次迭代开始后从yield后的语句开始执行,直到再次遇到yield,返回新一次的结果。

当然,不熟悉yield的同学可能也不太理解迭代器(比如我 ^^),因而用更通俗的话来说就是,如果一个函数(脚本)需要多次重复(循环)执行,并且每次循环的结果都是需要的,那么用yield代替return就可以了,举例如下:

>>> def fib(max):...     n,a,b=0,0,1...     while n <max:...         yield a...         a,b = b,a+b...         n += 1>>> f1.next()0>>> f1.next()1>>> f1.next()1>>> f1.next()2>>> f1.next()3>>> f1.next()Traceback (most recent call last):  File "<stdin>", line 1, in <module>StopIteration

 


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表