python中的yield使用方法


Posted in Python onFebruary 11, 2014

今天在看其他同事的代码时,发现一个没使用过的python关键字 :yield

      先问了一下同事,听他说了几句,有个模糊的印象,仅仅是模糊而已。于是自己去搜搜资料看。看了半天,逐渐清晰了。不过在工作机制以及应用上还是有点迷茫。嗯,先把初始接触的印象记下来吧。

      yield 简单说来就是一个生成器(Generator)。生成器是这样一个函数:它记住上一次返回时在函数体中的位置。对生成器函数的第二次(或第 n 次)调用跳转至该函数中间,而上次调用的所有局部变量都保持不变。

      你看到某个函数包含了yield,这意味着这个函数已经是一个Generator,它的执行会和其他普通的函数有很多不同。

      可能看到这里还是迷迷糊糊,先看一些实例吧:

      def test( data_list ):
            for x in data_list:
                 yield x + 1
      data = [1,2,3,4]
      for y in test( data ):
           print y

      则输出结果为:

      2       3       4        5

      另外一种用法:

      handle = test(data)

      handle.next()     输出  2

      handle.next()     输出  3

      handle.next()     输出  4

      handle.next()     输出  5

      handle.next()     则会报错

      这只是 yield 的初步印象,接下来慢慢摸索吧。

Python 相关文章推荐
Python转码问题的解决方法
Oct 07 Python
python实现文件名批量替换和内容替换
Mar 20 Python
pycharm 使用心得(七)一些实用功能介绍
Jun 06 Python
python BeautifulSoup设置页面编码的方法
Apr 03 Python
让Python代码更快运行的5种方法
Jun 21 Python
Linux上安装Python的PIL和Pillow库处理图片的实例教程
Jun 23 Python
Python 判断图像是否读取成功的方法
Jan 26 Python
Python中的Socket 与 ScoketServer 通信及遇到问题解决方法
Apr 01 Python
Python分割训练集和测试集的方法示例
Sep 19 Python
Python实现图片批量加入水印代码实例
Nov 30 Python
Python StringIO如何在内存中读写str
Jan 07 Python
Python实现AI自动抠图实例解析
Mar 05 Python
python重试装饰器示例
Feb 11 #Python
python网络爬虫采集联想词示例
Feb 11 #Python
python基础教程之实现石头剪刀布游戏示例
Feb 11 #Python
python使用递归解决全排列数字示例
Feb 11 #Python
python基础教程之popen函数操作其它程序的输入和输出示例
Feb 10 #Python
python基础教程之python消息摘要算法使用示例
Feb 10 #Python
go和python调用其它程序并得到程序输出
Feb 10 #Python
You might like
如何用php生成扭曲及旋转的验证码图片
2013/06/07 PHP
关于php程序报date()警告的处理(date_default_timezone_set)
2013/10/22 PHP
PHP实现JS中escape与unescape的方法
2016/07/11 PHP
PHP实现上传图片到 zimg 服务器
2016/10/19 PHP
php实现将数据做成json的格式给前端使用
2018/08/21 PHP
页面中iframe相互传值传参
2009/12/13 Javascript
Js如何判断客户端是PC还是手持设备简单分析
2012/11/22 Javascript
JQuery.Ajax之错误调试帮助信息介绍
2013/07/04 Javascript
JQuery插件开发示例代码
2013/11/06 Javascript
js的alert样式如何更改如背景颜色
2014/01/22 Javascript
javascript判断office版本示例
2014/04/11 Javascript
用js替换除数字与逗号以外的所有字符的代码
2014/06/07 Javascript
javascript绘制漂亮的心型线效果完整实例
2016/02/02 Javascript
JavaScript中Object值合并方法详解
2017/12/22 Javascript
微信小程序实现图片压缩
2019/12/03 Javascript
python实现保存网页到本地示例
2014/03/16 Python
Python之eval()函数危险性浅析
2014/07/03 Python
Python创建文件和追加文件内容实例
2014/10/21 Python
Python使用scrapy采集数据时为每个请求随机分配user-agent的方法
2015/04/08 Python
Python中的Matplotlib模块入门教程
2015/04/15 Python
Python抽象类的新写法
2015/06/18 Python
Python编程求质数实例代码
2018/01/31 Python
对Python中DataFrame选择某列值为XX的行实例详解
2019/01/29 Python
Python进程间通信Queue消息队列用法分析
2019/05/22 Python
PyQt5响应回车事件的方法
2019/06/25 Python
Python之——生成动态路由轨迹图的实例
2019/11/22 Python
Python3 使用map()批量的转换数据类型,如str转float的实现
2019/11/29 Python
python 制作网站小说下载器
2021/02/20 Python
北美个性化礼品商店:Things Remembered
2018/06/12 全球购物
iPad和Surface Pro蓝牙键盘:Brydge
2018/11/10 全球购物
建筑节能汇报材料
2014/08/22 职场文书
工程资料员岗位职责
2015/04/13 职场文书
2015年行政人事部工作总结
2015/05/13 职场文书
汉字听写大会观后感
2015/06/12 职场文书
Nginx本地目录映射实现代码实例
2021/03/31 Servers
Python实现抖音热搜定时爬取功能
2022/03/16 Python