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基础教程之popen函数操作其它程序的输入和输出示例
Feb 10 Python
Python 时间操作例子和时间格式化参数小结
Apr 24 Python
python使用cPickle模块序列化实例
Sep 25 Python
在DigitalOcean的服务器上部署flaskblog应用
Dec 19 Python
Python中的字符串替换操作示例
Jun 27 Python
Java与Python两大幸存者谁更胜一筹呢
Apr 12 Python
Python、 Pycharm、Django安装详细教程(图文)
Apr 12 Python
三步解决python PermissionError: [WinError 5]拒绝访问的情况
Apr 22 Python
python正则表达式的懒惰匹配和贪婪匹配说明
Jul 13 Python
带你学习Python如何实现回归树模型
Jul 16 Python
Python基于字典实现switch case函数调用
Jul 22 Python
Python实例教程之检索输出月份日历表
Dec 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
CI框架验证码CAPTCHA辅助函数用法实例
2014/11/05 PHP
php经典趣味算法实例代码
2020/01/21 PHP
Js获取事件对象代码
2010/08/05 Javascript
JavaScript Date对象 日期获取函数
2010/12/19 Javascript
基于jquery的无刷新分页技术
2011/06/11 Javascript
JQuery获取样式中的background-color颜色值的问题
2013/08/20 Javascript
js实现数组去重、判断数组以及对象中的内容是否相同
2013/11/29 Javascript
原生js实现复制对象、扩展对象 类似jquery中的extend()方法
2014/08/30 Javascript
jquery实现标签上移、下移、置顶
2015/04/26 Javascript
js实现简单的联动菜单效果
2015/08/19 Javascript
解决angular的post请求后SpringMVC后台接收不到参数值问题的方法
2015/12/10 Javascript
判断JS对象是否拥有某属性的方法推荐
2016/05/12 Javascript
jQuery封装的屏幕居中提示信息代码
2016/06/08 Javascript
深入解析Javascript闭包的功能及实现方法
2016/07/10 Javascript
headjs实现网站并行加载但顺序执行JS
2016/11/29 Javascript
轻松学习Javascript闭包
2017/03/01 Javascript
vue中使用codemirror的实例详解
2018/11/01 Javascript
解决微信小程序云开发中获取数据库的内容为空的方法
2019/05/15 Javascript
python完成FizzBuzzWhizz问题(拉勾网面试题)示例
2014/05/05 Python
python简单猜数游戏实例
2015/07/09 Python
简单的Apache+FastCGI+Django配置指南
2015/07/22 Python
python的random模块及加权随机算法的python实现方法
2017/01/04 Python
基于python3 类的属性、方法、封装、继承实例讲解
2017/09/19 Python
详解用Python处理HTML转义字符的5种方式
2017/12/27 Python
值得收藏的10道python 面试题
2019/04/15 Python
Crocs卡骆驰洞洞鞋日本官方网站:Crocs日本
2016/08/25 全球购物
Lookfantastic西班牙官网:英国知名美妆购物网站
2018/06/13 全球购物
俄罗斯有趣和原创礼物网上商店:MagicMag
2019/08/01 全球购物
Diesel美国网上商店:意大利牛仔时装品牌
2020/12/10 全球购物
不用游标的SQL语句有哪些
2012/09/07 面试题
行政人员工作职责
2013/12/05 职场文书
老公给老婆的保证书
2014/04/28 职场文书
自主招生学校推荐信
2014/09/26 职场文书
酒店收银员岗位职责
2015/04/07 职场文书
关于成立领导小组的通知
2015/04/23 职场文书
浅谈redis整数集为什么不能降级
2021/07/25 Redis