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

python生成器generator用法实例分析

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

通过本文主要向大家介绍了python generator,python中的generator,generator 生成器,generator生成,generator自动生成等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

本文实例讲述了python生成器generator用法。分享给大家供大家参考。具体如下:

使用yield,可以让函数生成一个结果序列,而不仅仅是一个值

例如:

def countdown(n): 
  print "counting down" 
  while n>0: 
    yield n #生成一个n值 
    n -=1 
>>> c = countdown(5) 
>>> c.next() 
counting down 
5 
>>> c.next() 
4 
>>> c.next() 
3 

</div>

next()调用生成器函数一直运行到下一条yield语句为止,此时next()将返回值传递给yield.而且函数将暂停中止执行。再次调用时next()时,函数将继续执行yield之后的语句。此过程持续执行到函数返回为止。

通常不会像上面那样手动调用next(), 而是使用for循环,例如:

>>> for i in countdown(5): 
...   print i 
...   
counting down 
5 
4 
3 
2 
1 
</div>

next(), send()的返回值都是yield 后面的参数, send()跟next()的区别是send()是发送一个参数给(yield n)的表达式,作为其返回值给m, 而next()是发送一个None给(yield n)表达式, 这里需要区分的是,一个是调用next(),send()时候的返回值,一个是(yield n)的返回值,两者是不一样的.看输出结果可以区分。

def h(n): 
  while n>0: 
    m = (yield n) 
    print "m is "+str(m) 
    n-=1 
    print "n is "+str(n) 
>>> p= h(5) 
>>> p.next() 
5 
>>> p.next() 
m is None 
n is 4 
4 
>>> p.send("test") 
m is test 
n is 3 
3 
</div>

希望本文所述对大家的Python程序设计有所帮助。

</div>

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

  • 浅谈Python生成器generator之next和send的运行流程(详解)
  • Python使用迭代器捕获Generator返回值的方法
  • python生成器generator用法实例分析

相关文章

  • python实现获取Ip归属地等信息
  • Python基类函数的重载与调用实例分析
  • Python实现把xml或xsl转换为html格式
  • Pycharm学习教程(5) Python快捷键相关设置
  • 浅析Python中的for 循环
  • 使用Python生成XML的方法实例
  • 使用python 获取进程pid号的方法
  • 探究Python的Tornado框架对子域名和泛域名的支持
  • Python访问纯真IP数据库脚本分享
  • Python实现partial改变方法默认参数

文章分类

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

最近更新的内容

    • python实现爬虫下载漫画示例
    • Python松散正则表达式用法分析
    • 跟老齐学Python之关于循环的小伎俩
    • Python的装饰器用法学习笔记
    • 利用Python的装饰器解决Bottle框架中用户验证问题
    • Python中断言Assertion的一些改进方案
    • python爬虫常用的模块分析
    • python访问sqlserver示例
    • Python使用MYSQLDB实现从数据库中导出XML文件的方法
    • Python3基础之基本运算符概述

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

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