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 开发者节省时间的10个方法
Oct 02 Python
python实现汉诺塔递归算法经典案例
Mar 01 Python
python 容器总结整理
Apr 04 Python
Python中的单继承与多继承实例分析
May 10 Python
python生成n个元素的全组合方法
Nov 13 Python
对python3 中方法各种参数和返回值详解
Dec 15 Python
Python中将两个或多个list合成一个list的方法小结
May 12 Python
django foreignkey(外键)的实现
Jul 29 Python
pycharm通过ssh连接远程服务器教程
Feb 12 Python
Python中用pyinstaller打包时的图标问题及解决方法
Feb 17 Python
基于Python爬取fofa网页端数据过程解析
Jul 13 Python
深入理解python多线程编程
Apr 18 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程序员应该了解MongoDB的五件事
2013/06/03 PHP
php+html5实现无刷新图片上传教程
2016/01/22 PHP
如何在PHP中使用数组
2020/06/09 PHP
jQuery Ajax之$.get()方法和$.post()方法
2009/10/12 Javascript
javascript中的undefined 与 null 的区别  补充篇
2010/03/17 Javascript
Android中资源文件(非代码部分)的使用概览
2012/12/18 Javascript
javaScript中slice函数用法实例分析
2015/06/08 Javascript
js判断上传文件后缀名是否合法
2016/01/28 Javascript
Vue计算属性的学习笔记
2017/03/22 Javascript
JavaScript原生数组Array常用方法
2017/04/06 Javascript
jQuery Validate格式验证功能实例代码(包括重名验证)
2017/07/18 jQuery
详解node nvm进行node多版本管理
2017/10/21 Javascript
jQuery简单实现向列表动态添加新元素的方法示例
2017/12/25 jQuery
iview table高度动态设置方法
2018/03/14 Javascript
原生js+canvas实现下雪效果
2020/08/02 Javascript
介绍Python中的一些高级编程技巧
2015/04/02 Python
python简单实现计算过期时间的方法
2015/06/09 Python
教你用Python写安卓游戏外挂
2018/01/11 Python
Python 字符串与二进制串的相互转换示例
2018/07/23 Python
python实现图片中文字分割效果
2019/07/22 Python
浅谈python opencv对图像颜色通道进行加减操作溢出
2020/06/03 Python
详解python metaclass(元类)
2020/08/13 Python
Python3.8安装Pygame教程步骤详解
2020/08/14 Python
python实现画图工具
2020/08/27 Python
python制作一个简单的gui 数据库查询界面
2020/11/19 Python
咖啡为什么会有酸味?你喝到的咖啡為什麼是酸的?
2021/03/17 冲泡冲煮
美国浴缸、水槽和水龙头购物网站:Vintage Tub & Bath
2019/11/05 全球购物
活动总结怎么写
2014/04/28 职场文书
2014公司党员自我评价范文
2014/09/11 职场文书
信用卡结清证明怎么写
2014/09/13 职场文书
设备收款委托书范本
2014/10/02 职场文书
个人借款协议书范本
2014/11/17 职场文书
测量员岗位职责
2015/02/14 职场文书
2015年司机年终工作总结
2015/05/14 职场文书
我在伊朗长大观后感
2015/06/16 职场文书
python实现MD5进行文件去重的示例代码
2021/07/09 Python