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实现批量获取指定文件夹下的所有文件的厂商信息
Sep 28 Python
在Linux下使用Python的matplotlib绘制数据图的教程
Jun 11 Python
zookeeper python接口实例详解
Jan 18 Python
python中int与str互转方法
Jul 02 Python
用Python PIL实现几个简单的图片特效
Jan 18 Python
Python实现查找二叉搜索树第k大的节点功能示例
Jan 24 Python
Python3.5字符串常用操作实例详解
May 01 Python
pandas DataFrame索引行列的实现
Jun 04 Python
解决Django响应JsonResponse返回json格式数据报错问题
Aug 09 Python
一文带你了解Python 四种常见基础爬虫方法介绍
Dec 04 Python
使用Selenium实现微博爬虫(预登录、展开全文、翻页)
Apr 13 Python
Python实现聚类K-means算法详解
Jul 15 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中隐形字符65279(utf-8的BOM头)问题
2014/08/16 PHP
php中stdClass的用法分析
2015/02/27 PHP
php链式操作的实现方式分析
2019/08/12 PHP
PHP二维数组分页2种实现方法解析
2020/07/09 PHP
asp.net+js 实现无刷新上传解析csv文件的代码
2010/05/17 Javascript
jQuery 源码分析笔记(2) 变量列表
2011/05/28 Javascript
JavaScript高级程序设计 阅读笔记(二十) js错误处理
2012/08/14 Javascript
js/jquery解析json和数组格式的方法详解
2014/01/09 Javascript
JS的encodeURI和java的URLDecoder.decode使用介绍
2014/05/08 Javascript
jQuery使用之标记元素属性用法实例
2015/01/19 Javascript
JavaScript实现点击单元格改变背景色的方法
2016/02/12 Javascript
html5+javascript实现简单上传的注意细节
2016/04/18 Javascript
Javascript HTML5 Canvas实现的一个画板
2020/04/12 Javascript
完美解决jQuery的hover事件在IE中不停闪动的问题
2017/02/10 Javascript
JS中Safari浏览器中的Date
2017/07/17 Javascript
Bootstrap modal只加载一次数据的解决办法(推荐)
2017/11/24 Javascript
利用es6 new.target来对模拟抽象类的方法
2019/05/10 Javascript
Vue 动态路由的实现及 Springsecurity 按钮级别的权限控制
2019/09/05 Javascript
Python标准库06之子进程 (subprocess包) 详解
2016/12/07 Python
读取json格式为DataFrame(可转为.csv)的实例讲解
2018/06/05 Python
python实现京东秒杀功能
2018/07/30 Python
python实现多层感知器MLP(基于双月数据集)
2019/01/18 Python
PyQt5高级界面控件之QTableWidget的具体使用方法
2020/02/23 Python
浅谈Python中range与Numpy中arange的比较
2020/03/11 Python
全球酒店预订网站:Hotels.com
2016/08/10 全球购物
世界上最好的帽子:Tilley
2016/11/27 全球购物
德国汉莎航空中国官网: Lufthansa中国
2017/03/30 全球购物
求高于平均分的学生学号及成绩
2016/09/01 面试题
Linux管理员面试题 Linux admin interview questions
2014/11/01 面试题
超市业务员岗位职责
2013/12/05 职场文书
2014卖家双十一活动策划书
2014/09/29 职场文书
党的群众路线教育实践活动领导班子整改措施
2014/10/28 职场文书
晶体管单管来复再生式收音机
2021/04/22 无线电
vue.js Router中嵌套路由的实用示例
2021/06/27 Vue.js
剑指Offer之Java算法习题精讲二叉树专项训练
2022/03/21 Java/Android
NoSQL优缺点与MongoDB数据库简介
2022/06/05 MongoDB