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多线程编程方式分析示例详解
Dec 06 Python
python3简单实现微信爬虫
Apr 09 Python
python实现将html表格转换成CSV文件的方法
Jun 28 Python
老生常谈Python基础之字符编码
Jun 14 Python
python3.5 email实现发送邮件功能
May 22 Python
Python sorted函数详解(高级篇)
Sep 18 Python
使用Python的SymPy库解决数学运算问题的方法
Mar 27 Python
基于Numpy.convolve使用Python实现滑动平均滤波的思路详解
May 16 Python
大家都说好用的Python命令行库click的使用
Nov 07 Python
python中upper是做什么用的
Jul 20 Python
Django xadmin安装及使用详解
Oct 26 Python
Python中else的三种使用场景
Jun 16 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
怎样在UNIX系统下安装MySQL
2006/10/09 PHP
将CMYK颜色值和RGB颜色相互转换的PHP代码
2014/07/28 PHP
PHP生成不重复标识符的方法
2014/11/21 PHP
input的focus方法使用
2010/03/13 Javascript
js实现屏蔽默认快捷键调用自定义事件示例
2013/06/18 Javascript
使用js画图之画切线
2015/01/12 Javascript
基于Bootstrap的Metronic框架实现页面链接收藏夹功能
2016/08/29 Javascript
使用jquery判断一个元素是否含有一个指定的类(class)实例
2017/02/12 Javascript
JavaScript正则替换HTML标签功能示例
2017/03/02 Javascript
深入掌握 react的 setState的工作机制
2017/09/27 Javascript
JavaScript实现写入文件到本地的方法【基于FileSaver.js插件】
2018/03/15 Javascript
详解微信小程序input标签正则初体验
2018/08/18 Javascript
JS开发自己的类库实例分析
2019/08/28 Javascript
JS 获取文件后缀,判断文件类型(比如是否为图片格式)
2020/05/09 Javascript
[01:18]PWL开团时刻DAY4——圣剑与抢盾
2020/11/03 DOTA
python 获取本机ip地址的两个方法
2013/02/25 Python
Python实现的微信公众号群发图片与文本消息功能实例详解
2017/06/30 Python
pandas值替换方法
2018/07/10 Python
浅谈python3中input输入的使用
2019/08/02 Python
python try except返回异常的信息字符串代码实例
2019/08/15 Python
快速解决docker-py api版本不兼容的问题
2019/08/30 Python
python 解压、复制、删除 文件的实例代码
2020/02/26 Python
Html5之svg可缩放矢量图形_动力节点Java学院整理
2017/07/17 HTML / CSS
html5 制作地图当前定位箭头的方法示例
2020/01/10 HTML / CSS
COSETTE官网:奢华,每天
2020/03/22 全球购物
如何执行一个shell程序
2012/11/23 面试题
毕业生求职简历的自我评价
2013/10/07 职场文书
信息技术培训感言
2014/03/06 职场文书
老师对学生的寄语
2014/04/09 职场文书
中学生操行评语
2014/04/24 职场文书
2014第二批党的群众路线教育实践活动对照检查材料思想汇报
2014/09/18 职场文书
2014领导班子四风剖析对照检查材料思想汇报
2014/09/20 职场文书
夫妻分居协议书范文
2014/11/26 职场文书
2016入党积极分子考察评语
2015/12/01 职场文书
《乘法分配律》教学反思
2016/02/24 职场文书
Golang: 内建容器的用法
2021/05/05 Golang