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实现从各个子文件夹中复制指定文件的方法
Oct 25 Python
python3.4 将16进制转成字符串的实例
Jun 12 Python
对Python生成器、装饰器、递归的使用详解
Jul 19 Python
django一对多模型以及如何在前端实现详解
Jul 24 Python
Python 网络编程之UDP发送接收数据功能示例【基于socket套接字】
Oct 11 Python
详解pyinstaller selenium python3 chrome打包问题
Oct 18 Python
Python利用matplotlib绘制约数个数统计图示例
Nov 26 Python
python实现交并比IOU教程
Apr 16 Python
python中有帮助函数吗
Jun 19 Python
python环境搭建和pycharm的安装配置及汉化详细教程(零基础小白版)
Aug 19 Python
python如何调用php文件中的函数详解
Dec 29 Python
Python趣味挑战之教你用pygame画进度条
May 31 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编程最快明白》第二讲 数字、浮点、布尔型、字符串和数组
2010/11/01 PHP
详解PHP序列化反序列化的方法
2015/10/27 PHP
PHP递归遍历指定文件夹内的文件实现方法
2016/11/15 PHP
PHP unlink与rmdir删除目录及目录下所有文件实例代码
2018/02/07 PHP
Thinkphp5+plupload实现的图片上传功能示例【支持实时预览】
2019/05/08 PHP
类似框架的js代码
2006/11/09 Javascript
基于逻辑运算的简单权限系统(实现) JS 版
2007/03/24 Javascript
jQuery 使用手册(六)
2009/09/23 Javascript
js 实现图片预加载(js操作 Image对象属性complete ,事件onload 异步加载图片)
2011/03/25 Javascript
javascript 数字格式化输出的实现代码
2013/12/10 Javascript
jQuery实现统计复选框选中数量
2014/11/24 Javascript
jQuery中not()方法用法实例
2015/01/06 Javascript
JavaScript中Cookie操作实例
2015/01/09 Javascript
JavaScript使用FileSystemObject对象写入文本文件内容的方法
2015/08/05 Javascript
jQuery.deferred对象使用详解
2016/03/18 Javascript
javascript实现简易计算器
2017/02/01 Javascript
JS实现点击Radio动态更新table数据
2017/07/18 Javascript
js使用xml数据载体实现城市省份二级联动效果
2017/11/08 Javascript
详解小程序缓存插件(mrc)
2018/08/17 Javascript
微信小程序按钮点击跳转页面详解
2019/05/06 Javascript
Javascript 类型转换、封闭函数及常见内置对象操作示例
2019/11/15 Javascript
JavaScript中this的学习笔记及用法整理
2020/02/17 Javascript
python爬虫入门教程之糗百图片爬虫代码分享
2014/09/02 Python
Python中的集合类型知识讲解
2015/08/19 Python
Python中装饰器高级用法详解
2017/12/25 Python
python发送告警邮件脚本
2018/09/17 Python
Python PIL图片添加字体的例子
2019/08/22 Python
美国在线购买空气净化器、除湿器、加湿器网站:AllergyBuyersClub
2021/03/16 全球购物
波兰办公用品和学校用品在线商店:Dlabiura24.pl
2020/11/18 全球购物
五年级学生评语
2014/04/22 职场文书
大学活动总结范文
2014/04/29 职场文书
产品包装策划方案
2014/05/18 职场文书
师范类求职信
2014/06/21 职场文书
2014年最新离婚协议书范本
2014/10/11 职场文书
2015年小学开学寄语
2015/02/27 职场文书
apache虚拟主机配置的三种方式(小结)
2022/07/23 Servers