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的Socket编程过程中实现UDP端口复用的实例分享
Mar 19 Python
详解python 字符串和日期之间转换 StringAndDate
May 04 Python
基于Python代码编辑器的选用(详解)
Sep 13 Python
Python将8位的图片转为24位的图片实现方法
Oct 24 Python
python自动发送测试报告邮件功能的实现
Jan 22 Python
python 求一个列表中所有元素的乘积实例
Jun 11 Python
pyinstaller参数介绍以及总结详解
Jul 12 Python
python2和python3实现在图片上加汉字的方法
Aug 22 Python
python基于gevent实现并发下载器代码实例
Nov 01 Python
matplotlib jupyter notebook 图像可视化 plt show操作
Apr 24 Python
django template实现定义临时变量,自定义赋值、自增实例
Jul 12 Python
jupyter notebook更换皮肤主题的实现
Jan 07 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新手上路(十二)
2006/10/09 PHP
php引用地址改变变量值的问题
2012/03/23 PHP
php文件系统处理方法小结
2016/05/23 PHP
微信公众号实现会员卡领取功能
2017/06/08 PHP
PHP解析url并得到url参数方法总结
2018/10/11 PHP
php适配器模式简单应用示例
2019/10/23 PHP
php与阿里云短信接口接入操作案例分析
2020/05/27 PHP
javascript 一个自定义长度的文本自动换行的函数
2007/08/19 Javascript
JavaScript 获取用户客户端操作系统版本
2009/08/25 Javascript
使用jquery实现div的tab切换实例代码
2013/05/27 Javascript
js正则表达式的使用详解
2013/07/09 Javascript
javascript和HTML5利用canvas构建猜牌游戏实现算法
2013/07/17 Javascript
浅析用prototype定义自己的方法
2013/11/14 Javascript
如何减少浏览器的reflow和repaint
2015/02/26 Javascript
在JavaScript的jQuery库中操作AJAX的方法讲解
2015/08/15 Javascript
jQuery文本框得到与失去焦点动态改变样式效果
2016/09/08 Javascript
基于LayUI分页和LayUI laypage分页的使用示例
2017/08/02 Javascript
bootstrap可编辑下拉框jquery.editable-select
2017/10/12 jQuery
vue多页面开发和打包正确处理方法
2018/04/20 Javascript
Vue.js 中取得后台原生HTML字符串 原样显示问题的解决方法
2018/06/10 Javascript
如何在基于vue-cli的项目自定义打包环境
2018/11/10 Javascript
解决layer 关闭当前弹窗 关闭遮罩层 input值获取不到的问题
2019/09/25 Javascript
[02:12]2015国际邀请赛 SHOWOPEN
2015/08/05 DOTA
python实现输入数字的连续加减方法
2018/06/22 Python
python 模拟贷款卡号生成规则过程解析
2019/08/30 Python
详解Python设计模式之策略模式
2020/06/15 Python
如何将Pycharm中调整字体大小的方式设置为"ctrl+鼠标滚轮上下滑"
2020/11/17 Python
JavaScript+Canvas实现自定义画板的示例代码
2019/05/13 HTML / CSS
Hotels.com香港酒店网:你的自由行酒店订房专家
2018/01/22 全球购物
优秀食品类广告词
2014/03/19 职场文书
原料仓管员岗位职责
2014/04/12 职场文书
党员批评与自我批评材料
2014/10/14 职场文书
模范教师事迹材料
2014/12/16 职场文书
全陪导游词
2015/02/04 职场文书
python自动统计zabbix系统监控覆盖率的示例代码
2021/04/03 Python
详细聊聊vue中组件的props属性
2021/11/02 Vue.js