`
sls0919
  • 浏览: 123109 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

python之yield学习

阅读更多

        最近看新项目代码里有好多的yield,之前由于很少用,所以对其不慎了解,学习之。

        yield就是一个生成器,也可以理解为自定义的迭代器,需要你每次调用next()或者是send()方法才能执行下去,直到碰到下一个yield。执行一个 send(msg) 会恢复 generator 的运行,然后发送的值将成为当前 yield 表达式的返回值。然后 send() 会返回下一个被 generator yield 的值,如果没有下一个可以 yield 的值则引发一个异常。

 

那么可以看过这其实包含了一次运行,从将msg赋给当前被停住的 yield 表达式开始,到下一个 yield 语句结束,然后返回下一个yield语句的参数,然后再挂起,等待下一次的调用。看例子

 

>>> def tt():
...     print 'hello'
...     a = yield 5
...     b = a +2
...     print b
...     print "cc"
...     c = yield 6
...     print 'dd'
...     b = b + 2
...     print b
>>> x = tt()
>>> x.next()
hello
5
>>> x.send(8)
10
cc
6
>>> x.send(7)
dd
12
Traceback (most recent call last):
  File "<pyshell#71>", line 1, in <module>
    x.send(7)
StopIteration
>>> 

 

 

分享到:
评论

相关推荐

    python中yield的用法详解——最简单,最清晰的解释

    主要介绍了python中yield的用法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

    python中yield的认识与学习|生成器

    接触python,yield就有点难度啦、都知道包含这个yield的函数就不是普通函数啦。就是一个生成器函数。 类型: 白话,他跟return的区别就是。他会为用户保留一个断点。return,程序执行一次之后,就会一切重新开始。...

    通过实例简单了解Python中yield的作用

    主要介绍了通过实例简单了解Python中yield的作用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

    python之yield和Generator深入解析

    主要介绍了python之yield和Generator深入解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

    Python基于yield遍历多个可迭代对象

    主要介绍了Python基于yield遍历多个可迭代对象,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

    深入学习python的yield和generator

    主要为大家详细介绍了python的yield和generator,针对python的生成器和yield关键字进行深入学习,感兴趣的小伙伴们可以参考一下

    浅析Python中yield关键词的作用与用法

    Python中关键字yield的作用是什么?...这篇文章就给大家详细介绍了Python中yield关键词的作用与用法,文中通过示例代码介绍的很详细,对大家学习python具有一定的参考借鉴价值,有需要的朋友们下面来一起学习学习吧。

    python使用yield压平嵌套字典的超简单方法

    主要给大家介绍了关于python使用yield压平嵌套字典的超简单方法,文中通过示例代码介绍的非常详细,对大家的学习或者使用python具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧

    python函数式编程学习之yield表达式形式详解

    yield的英文单词意思是生产,刚接触Python的时候感到非常困惑,一直没弄明白yield的用法。最近又重新学习了下,所以整理了下面这篇文章,供自己和大家学习参考,下面话不多说了,来一起看看详细的介绍吧。 先来看一...

    Python 深入理解yield

    alist = [1, 2, 3, 4]for x in addlist(alist): print x,这的确是yield应用的一个例子,但是,看过limodou的文章《2.5版yield之学习心得》,并自己反复体验后,对yield有了一个全新的理解。 1. 包含yield...

    python异步编程 使用yield from过程解析

    主要介绍了python异步编程 使用yield from过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

    python yield关键词案例测试

    主要介绍了python yield关键词案例测试,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

    python运维系统开发

    适合要学习python提高自己工作效率,或者要做一些运维工作的朋友,资源内附网盘地址 包含内容: 1、python语言介绍 2、编程风格讲解 3、数字运算 4、模块讲解 5、流程控制 6、文件处理 7、列表、切片 8、字典 9、...

    Python多任务学习笔记(10)——分别通过yield关键字、greenlet以及gevent实现多任务

    前面,我们已经学习了分别通过线程和进程来完成多任务,实际上,使用Python中的yield关键字及表达式、生成器、生成器迭代器、生成器表达式详解中提到的yield关键字也可以实现多任务。如下述代码: import time def w

    python yield和Generator函数用法详解

    主要介绍了python yield和Generator函数用法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

    详解Python3中yield生成器的用法

    主要介绍了详解Python3中yield生成器的用法,是Python入门学习中的基础知识,需要的朋友可以参考下

Global site tag (gtag.js) - Google Analytics