前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python基础—生成器

python基础—生成器

作者头像
dogfei
发布2020-07-31 11:38:40
2310
发布2020-07-31 11:38:40
举报
文章被收录于专栏:devops探索devops探索
代码语言:javascript
复制
生成器
代码语言:javascript
复制
    生成器generator
  
  
  <ul>
    <li>
      
        生成器指的是生成器对象,可以由生成器表达式得到,也可以使用yield关键字得到一个生成器函数,调用这个函数得到一个生成器对象
      
    </li>
  </ul>
</li>

<li>
  
    生成器函数
  
  
  <ul>
    <li>
      
        函数体中包含yield语句的函数,返回生成器对象
      
    </li>
    
    <li>
      
        生成器对象,是一个可迭代对象,是一个迭代器
      
    </li>
    
    <li>
      
        next(generator)会从函数的当前位置向后执行到之后碰到的第一个yield语句,会弹出值,并暂停函数执行
      
    </li>
    
    <li>
      
        没有多余的yield语句能被执行,继续调用next函数,会抛出StopIteration
      
    </li>
    
    <li>
      
        生成器对象,是延迟计算,惰性求值
      
    </li>
  </ul>
</li>

先来对比下生成器表达式和生成器函数

在生成器函数中,使用多个yield语句,执行一次后会暂停执行,把yield表达式的值返回,再次执行会执行到下一个yield语句

下面看一些简单的关于生成器的应用

这是一个无限循环的函数,每调用一次,就返回一个自加的值

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-02-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档