更具新闻影响力网站
欢迎投稿本网站
万象百科网 > 科技世界 >

Python 的关键字 yield 有哪些用法和用途?

发布时间:2021-05-03 12:25   来源:未知    作者:admin

yield 的用法有以下四种常见的情况:一个是生成器,二是用于定义上下文管理器,三是协程,四是配合 from 形成 yield from 用于消费子生成器并传递消息。这四种用法,其实都源于 yield 所具有的暂停的特性,也就说程序在运行到 yield 所在的位置 result = yield expr 时,先执行 yield expr 将产生的值返回给调用生成器的 caller,然后暂停,等待 caller 再次激活并恢复程序的执行。而根据恢复程序使用的方法不同,yield expr 表达式的结果值 result 也会跟着变化。如果使用 __next()__ 来调用,则 yield 表达式的值 result 是 None;如果使用 send() 来调用,则 yield 表达式的值 result 是通过 send 函数传送的值。下面是官方文档介绍 yield 表达式时的一个例子[1],能够很好地说明关键字 yield 的特性和用法:

>>> def echo(value=None):... print("Begin...")... try:... while True:... try:... value = (yield value)... except Exception as e:... value = e... finally:... print("Clean up!!!")...>>> generator = echo(1)>>> print(next(generator))Begin...1>>> print(next(generator))None>>> print(generator.send(2))2>>> generator.throw(TypeError, "spam")TypeError("spam")>>> generator.close()Clean up!!!

上面这段代码的说明如下图所示:

执行第一个 next(generator) 的时候,也就是预激活生成器,生成器开始执行,打印 Begin... 字符串,执行到 value = (yield value) 的位置时,首先调用 yield value 产生数字 1,然后生成器在 yield 的位置暂停。

接着调用第 2 个 next(generator) 的时候,生成器恢复执行,由于使用 next() 来调用生成器函数, value 的值会变成 None ,因此生成器函数继续执行到 yield value 时,会将 value 的值 None 返回给解释器,然后再次暂停。



【随便看看】
巴点去,一道柔和的光芒射出,落在古巴身上,让徐天惊讶的一幕出现了,古巴体内的血液居然开始恢复,而他的身体也从苍白转为红润,几分钟后,古巴居然满血复活,醒了过来。一开始古巴的眼神充满了茫然,不过过了片
天寿的声望现在是一级,一级声望升级到二级足足需要五万声望值。 之前冒了不小的风险杀了灵州牧,这才获取了两万声望值,并且还没有达到预期的效果,升级到二级声望。 现在莫名其妙的获得了金乌血脉
从虚空中伸出来,砰的一声将这名老妪给攥在了掌心中。 战场上,一个人神秘出现,身材挺拔,战衣明亮,乌黑色的长发披肩,此刻出现在姜灵空的身边。 来人,正是黑剑帝。 只不过此刻,黑剑帝不
牧寒他们说道,“这位先生、女士,两位请跟我来,我们老板马上回来,请两位移步茶水间稍作休息。” 这么说着他将牧寒和雪依依请到了休息室,端茶倒水,还拿出来一些小零食,生怕怠慢了牧寒这个超级大主顾。
色海洋之间,而且随着时间的流逝,这潮汐的规模也在不断的扩大着。 嗡~~ 突然之间,一声清脆的剑鸣声从银色海洋深处传了出来,并且那些被锁链缠绕的神剑也是纷纷发出了一声声剑鸣。不过,真正被云
这是打赏。 除此之外。 更多的观众老爷还是抱着一分钱一分货的心态,使出一段招数就拿出一个铜板,看的心安理得,叫好叫骂皆由自己。 有人问叫骂也行? 那当然! 再追问为啥
而有些部位,显然是难以言喻的。 但许仙可不傻,他现在可不会说出来,要真实话实说,可不敢保证这少女,不会一剑刺进自己喉咙。 “我什么也没有看见。”见少女手中的长剑,似乎是抖了抖,许仙连忙道
顶上有六轮明月高照,月光清澈,洒落下来。 他瞬息之间,只觉浑身清朗了许多。 尽管有着斩仙飞刀,加上青帝符诏,不受阴冥侵蚀,但难免稍微有所沾染气息。 可经过这月光清照,一切不净气息,
下来的比斗做准备,能够提升一分实力也是好的。” 常玺说的正气凛然,“我愿意分享出自己的武道心得,一切都为了苍竹城!” 柳紫倾满意的点点头,“好啊,那我们就一起交流吧。” 庞振啸等人
了鬼的感觉,自己有山海氏血脉?恐怕秦未央都不相信。 “听说你是天马骑兵?”山海萧问道。 “侥幸,刚刚成为天马骑兵。”叶天泽说道。 “那就对了,能够拔出这把刀,却无法感应刀意,或许,
在他们两人身上,没有多言语,身影忽地前冲。 身化金鹏,飞羽遁空! 覆海大阵启,三十六颗定海神珠之力贯穿全身,引动八十一颗玄珠齐齐暴乱! 若从千里之外望向此地,便能见那满天黑云之中猛
军最后放下这么一句话,然后离开了墨菲的别墅,他同时对这里进行了观察,但是可惜这里基本就是一个智能家居的别墅而已,真正的可信在地下部分,他是看不到的。 美国方面的反制措施直接来了,航母和装甲车的
两种特性都结合起来的中年男人,夹着包走了进来。 “傻哥,您来了啊。” “傻哥,听说最近香江新出台的一条法律,是由您主导呢...”在座的人,黑白两道全都站了起来迎接,可见这个人的名望。
可以觉醒超能力。 觉醒几率用万中无一来形容,完全没毛病。 但即便是只有两万分之一,甚至是三万分之一,以人类的七十亿人口基数,以及两百多年的时间跨度而言,那也有相当一部分人觉醒了超能力。
,阴阳二气形成一个巨大的太极图案,太极图案不断旋转,每旋转一次,来自元明的力量就被消磨一分。此消彼长之下,羽翼仙再次撑住了元明的攻击。 当然,羽翼仙接下元明的攻击,并不是没有任何代价的。想要维

上一篇:真正懂手机的都不戴壳,看完这3个原因,我默默把手机壳摘了下来
下一篇:没有了

分享到:
0
最新资讯
阅读排行