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程序中操作MySQL的基本方法
Jul 29 Python
Python Sql数据库增删改查操作简单封装
Apr 18 Python
利用python实现简单的循环购物车功能示例代码
Jul 05 Python
使用Python写一个贪吃蛇游戏实例代码
Aug 21 Python
Python使用matplotlib实现基础绘图功能示例
Jul 03 Python
Python中对数组集进行按行打乱shuffle的方法
Nov 08 Python
原来我一直安装 Python 库的姿势都不对呀
Nov 11 Python
Python decimal模块使用方法详解
Jun 08 Python
python代码区分大小写吗
Jun 17 Python
高考考python编程是真的吗
Jul 20 Python
golang/python实现归并排序实例代码
Aug 30 Python
Scrapy爬虫文件批量运行的实现
Sep 30 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下目前为目最全的CURL中文说明
2010/08/01 PHP
关于UEditor编辑器远程图片上传失败的解决办法
2012/08/31 PHP
解析array splice的移除数组中指定键的值,返回一个新的数组
2013/07/02 PHP
PHP中if和or运行效率对比
2014/12/12 PHP
ThinkPHP路由详解
2015/07/27 PHP
一个可以兼容IE FF的加为首页与加入收藏实现代码
2009/11/02 Javascript
JQuery 拾色器插件发布-jquery.icolor.js
2010/10/20 Javascript
javascript获得服务器端控件的ID的实现代码
2011/12/28 Javascript
浅谈JavaScript函数节流
2014/12/09 Javascript
动态加载js的方法汇总
2015/02/13 Javascript
JavaScript使用Prototype实现面向对象的方法
2015/04/14 Javascript
修改Jquery Dialog 位置的实现方法
2016/08/26 Javascript
讲解vue-router之什么是编程式路由
2018/05/28 Javascript
vue 实现左右拖拽元素并且不超过他的父元素的宽度
2018/11/30 Javascript
JavaScript高阶教程之“==”隐藏下的类型转换
2019/04/11 Javascript
深入了解JavaScript 的 WebAssembly
2019/06/15 Javascript
Ant Design Pro 下实现文件下载的实现代码
2019/12/03 Javascript
文章或博客自动生成章节目录索引(支持三级)的实现代码
2020/05/10 Javascript
解决echarts echarts数据动态更新和dataZoom被重置问题
2020/07/20 Javascript
[02:36]DOTA2混沌骑士 英雄基础教程
2013/11/26 DOTA
[02:04]2018DOTA2亚洲邀请赛Secret赛前采访
2018/04/03 DOTA
学习python之编写简单乘法口诀表实现代码
2016/02/27 Python
详解Python中表达式i += x与i = i + x是否等价
2017/02/08 Python
Python实现Kmeans聚类算法
2020/06/10 Python
浅谈python脚本设置运行参数的方法
2018/12/03 Python
python统计指定目录内文件的代码行数
2019/09/19 Python
python装饰器练习题及答案
2019/11/01 Python
python如何通过pyqt5实现进度条
2020/01/20 Python
python读取hdfs上的parquet文件方式
2020/06/06 Python
opencv 阈值分割的具体使用
2020/07/08 Python
Python selenium环境搭建实现过程解析
2020/09/08 Python
P/Invoke是什么
2015/07/31 面试题
校园招聘策划书
2014/01/09 职场文书
儿媳婚宴答谢词
2014/01/14 职场文书
活动策划求职信模板
2014/04/21 职场文书
教师反邪教心得体会
2016/01/15 职场文书