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 24 Python
python使用Flask框架获取用户IP地址的方法
Mar 21 Python
Python写的一个简单监控系统
Jun 19 Python
python实现JAVA源代码从ANSI到UTF-8的批量转换方法
Aug 10 Python
Linux下通过python访问MySQL、Oracle、SQL Server数据库的方法
Apr 23 Python
Django中间件工作流程及写法实例代码
Feb 06 Python
python 数据提取及拆分的实现代码
Aug 26 Python
使用python实现哈希表、字典、集合操作
Dec 22 Python
python自动化unittest yaml使用过程解析
Feb 03 Python
python 实现人和电脑猜拳的示例代码
Mar 02 Python
Pytorch 中的optimizer使用说明
Mar 03 Python
Pandas搭配lambda组合使用详解
Jan 22 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
Fatal error: Call to undefined function curl_init()解决方法
2010/04/09 PHP
处理单名多值表单的详解
2013/06/08 PHP
php实现的简单中文验证码功能示例
2017/01/03 PHP
PHP7下协程的实现方法详解
2017/12/17 PHP
PHP+redis实现微博的推模型案例分析
2019/07/10 PHP
Javascript下的keyCode键码值表
2007/04/10 Javascript
打豆豆小游戏 用javascript编写的[打豆豆]小游戏
2013/01/08 Javascript
XMLHttpRequest处理xml格式的返回数据(示例代码)
2013/11/21 Javascript
js实例属性和原型属性示例详解
2014/11/23 Javascript
基于jQuey实现鼠标滑过变色(整行变色)
2015/12/07 Javascript
js实现的奥运倒计时时钟效果代码
2015/12/09 Javascript
微信小程序如何获取用户信息
2018/01/26 Javascript
Vue SSR 组件加载问题
2018/05/02 Javascript
vue.js打包之后可能会遇到的坑!
2018/06/03 Javascript
Python version 2.7 required, which was not found in the registry
2014/08/26 Python
跟老齐学Python之list和str比较
2014/09/20 Python
python socket多线程通讯实例分析(聊天室)
2016/04/06 Python
JSON文件及Python对JSON文件的读写操作
2018/10/07 Python
利用PyTorch实现VGG16教程
2020/06/24 Python
python反扒机制的5种解决方法
2021/02/06 Python
全球最大的网上自行车商店:Chain Reaction Cycles
2016/12/02 全球购物
Dune London官网:英国著名奢华鞋履品牌
2017/11/30 全球购物
瑞士图书网站:Weltbild.ch
2019/09/17 全球购物
介绍一下write命令
2014/08/10 面试题
中药专业大学生医药工作求职信
2013/10/25 职场文书
师范院校学生自荐信范文
2013/12/27 职场文书
小学生期末自我鉴定
2014/01/19 职场文书
文明餐桌行动实施方案
2014/02/19 职场文书
电焊工岗位职责
2014/03/06 职场文书
保密承诺书
2014/03/27 职场文书
安全演讲稿大全
2014/05/09 职场文书
导游词之阆中古城
2019/12/23 职场文书
原生Javascript+HTML5一步步实现拖拽排序
2021/06/12 Javascript
《群青的幻想曲》京力秋树角色PV公开
2022/04/08 日漫
Apache SeaTunnel实现 非CDC数据抽取
2022/05/20 Servers
SQL Server使用PIVOT与unPIVOT实现行列转换
2022/05/25 SQL Server