• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell
您的位置:首页 > 脚本语言 >python > Python中的yield浅析

Python中的yield浅析

作者:junjie 字体:[增加 减小] 来源:互联网

junjie 通过本文主要向大家介绍了python中yield,python yield,python yield函数,python3 yield,python yield send等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

在介绍yield前有必要先说明下Python中的迭代器(iterator)和生成器(constructor)。

一、迭代器(iterator)

在Python中,for循环可以用于Python中的任何类型,包括列表、元祖等等,实际上,for循环可用于任何“可迭代对象”,这其实就是迭代器

迭代器是一个实现了迭代器协议的对象,Python中的迭代器协议就是有next方法的对象会前进到下一结果,而在一系列结果的末尾是,则会引发StopIteration。任何这类的对象在Python中都可以用for循环或其他遍历工具迭代,迭代工具内部会在每次迭代时调用next方法,并且捕捉StopIteration异常来确定何时离开。

使用迭代器一个显而易见的好处就是:每次只从对象中读取一条数据,不会造成内存的过大开销。

比如要逐行读取一个文件的内容,利用readlines()方法,我们可以这么写:

利用file的迭代器,我们可以这样写:


二、生成器(constructor)

生成器函数在Python中与迭代器协议的概念联系在一起。简而言之,包含yield语句的函数会被特地编译成生成器。当函数被调用时,他们返回一个生成器对象,这个对象支持迭代器接口。函数也许会有个return语句,但它的作用是用来yield产生值的。

不像一般的函数会生成值后退出,生成器函数在生成值后会自动挂起并暂停他们的执行和状态,他的本地变量将保存状态信息,这些信息在函数恢复时将再度有效

在运行完5次next之后,生成器抛出了一个StopIteration异常,迭代终止。
再来看一个yield的例子,用生成器生成一个Fibonacci数列:

>>> for i in fab(20):
...     print i,",",
...
0 , 1 , 1 , 2 , 3 , 5 , 8 , 13 ,</div>
看到这里应该就能理解生成器那个很抽象的概念了吧~~

</div>

您可能想查找下面的文章:

  • 浅析Python中yield关键词的作用与用法
  • 基于python yield机制的异步操作同步化编程模型
  • 举例详解Python中yield生成器的用法
  • Python yield 使用浅析
  • Python yield 使用浅析
  • Python中生成器和yield语句的用法详解
  • 初步解析Python中的yield函数的用法
  • python通过yield实现数组全排列的方法
  • Python中的生成器和yield详细介绍
  • Python中的生成器和yield详细介绍

相关文章

  • Python中的列表生成式与生成器学习教程
  • 从Python的源码浅要剖析Python的内存管理
  • python获取图片颜色信息的方法
  • python进阶教程之文本文件的读取和写入
  • Python实用日期时间处理方法汇总
  • 深入浅析Python中join 和 split详解(推荐)
  • Python中SOAP项目的介绍及其在web开发中的应用
  • python计算最小优先级队列代码分享
  • wxpython 学习笔记 第一天
  • Linux下使用python调用top命令获得CPU利用率

文章分类

  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell

最近更新的内容

    • python实现倒计时的示例
    • Python删除空文件和空文件夹的方法
    • 详细解析Python当中的数据类型和变量
    • 详解Python中dict与set的使用
    • python实现中文输出的两种方法
    • Python 通过pip安装Django详细介绍
    • Python学习笔记之常用函数及说明
    • Python中字符串的处理技巧分享
    • Python获取系统默认字符编码的方法
    • 一个计算身份证号码校验位的Python小程序

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有