python yield 理解
2015-06-02 11:40
344 查看
在别人的代码中看到yield这个关键字,看了几篇资料,说一下个人理解。
包含yield 关键字的函数成为一个迭代器,yield跟return的位置一样,只不过每次返回结果后,并没有退出,而是等待下一次迭代,下一次迭代开始后从yield后的语句开始执行,直到再次遇到yield,返回新一次的结果。
当然,不熟悉yield的同学可能也不太理解迭代器(比如我 ^^),因而用更通俗的话来说就是,如果一个函数(脚本)需要多次重复(循环)执行,并且每次循环的结果都是需要的,那么用yield代替return就可以了,举例如下:
包含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
相关文章推荐
- Python Numpy Tutorial
- python中if __name__ == '__main__': 解析
- Python challenge攻关0-5
- python爬虫笔记
- Python3学习之一环境搭建
- python学习整理
- python中os.path.isfile()和os.path.isdir()均返回false的问题
- python学习系列(五)--- 正则表达式基本函数
- Python基础
- python实现的文件同步服务器实例
- Python 正则表达式操作指南
- 浅谈python,python urllib及注意事项
- Python 正则表达式指南
- python 相关操作
- JS+Python(ajax+json)例子
- 用Python写一个乒乓球类的游戏
- Python中for循环控制语句用法实例
- python2.7.8在windows下安装numpy,scipy,matplotlib
- Python学习系列(三 )--- 全局变量
- python的GUI编程之Tkinter