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 fileinput模块使用实例
Jun 03 Python
Python爬虫辅助利器PyQuery模块的安装使用攻略
Apr 24 Python
浅谈python内置变量-reversed(seq)
Jun 21 Python
基于python 字符编码的理解
Sep 02 Python
python+Splinter实现12306抢票功能
Sep 25 Python
Python面向对象之类的定义与继承用法示例
Jan 14 Python
使用Python计算玩彩票赢钱概率
Jun 26 Python
python使用PIL和matplotlib获取图片像素点并合并解析
Sep 10 Python
pycharm导入源码的具体步骤
Aug 04 Python
python 如何调用远程接口
Sep 11 Python
python爬虫判断招聘信息是否存在的实例代码
Nov 20 Python
Python标准库之typing的用法(类型标注)
Jun 02 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
世界上第一台立体声收音机
2021/03/01 无线电
请php正则走开
2008/03/15 PHP
PHP CURL获取返回值的方法
2014/05/04 PHP
JavaScript 输入框内容格式验证代码
2010/02/11 Javascript
一个基于jquery的文本框记数器
2012/09/19 Javascript
如何实现修改密码时密码框显示保存到cookie的密码
2013/12/10 Javascript
js获取页面description的方法
2015/05/21 Javascript
js读取并解析JSON类型数据的方法
2015/11/14 Javascript
javascript仿京东导航左侧分类导航下拉菜单效果
2020/11/25 Javascript
BootStrap Table 设置height表头与内容无法对齐的问题
2016/12/28 Javascript
javascript阻止事件冒泡和浏览器的默认行为
2017/01/21 Javascript
Mobile Web开发基础之四--处理手机设备的横竖屏问题
2017/08/11 Javascript
html中通过JS获取JSON数据并加载的方法
2017/11/30 Javascript
关于微信小程序登录的那些事
2019/01/08 Javascript
vue 出现data-v-xxx的原因及解决
2020/08/04 Javascript
nuxt 页面路由配置,主页轮播组件开发操作
2020/11/05 Javascript
微信小程序实现简单的select下拉框
2020/11/23 Javascript
Python实现的数据结构与算法之基本搜索详解
2015/04/22 Python
Python网站验证码识别
2016/01/25 Python
Python切片知识解析
2016/03/06 Python
Python 获取当前所在目录的方法详解
2017/08/02 Python
Python实现字典按key或者value进行排序操作示例【sorted】
2019/05/03 Python
Python实现数据结构线性链表(单链表)算法示例
2019/05/04 Python
python内存监控工具memory_profiler和guppy的用法详解
2019/07/29 Python
Django使用Profile扩展User模块方式
2020/05/14 Python
购买英国原创艺术:Art Gallery
2018/08/25 全球购物
铭宣海淘转运:美国、日本、英国转运等全球转运公司
2019/09/10 全球购物
雅虎笔试题(字符串操作)
2015/03/24 面试题
写出二分查找算法的两种实现
2013/05/13 面试题
linux面试题参考答案(7)
2012/10/29 面试题
毕业生医学检验求职信
2013/10/16 职场文书
行政主管岗位职责
2013/11/18 职场文书
爱牙日宣传活动总结
2015/02/05 职场文书
老公保证书怎么写
2015/02/26 职场文书
2016大学生入党积极分子心得体会
2016/01/06 职场文书
利用JavaScript写一个简单计算器
2021/11/27 Javascript