国产成人AV无码一二三区,少女1到100集,国产精品久久久久精品综合紧,巜公妇之诱感肉欲HD在线播放

文章 > Python基础教程 > python生成器调用方法引发异常

python生成器调用方法引发异常

头像

小妮浅浅

2021-05-10 09:47:464061浏览 · 0收藏 · 0评论

(推荐操作系统:windows7系统、Python 3.9.1、DELL G3电脑。)

注意,在生成器已经执行时调用下面的任何生成器方法会引发 ValueError 异常。

1、__next__

开始执行一个生成器或者从上一次 yield 语句后继续执行。当使用该方法继续(注意是继续而不是第一次执行)时,那么当前 yield 的返回值为 None,直到执行到下一次的 yield 语句时,yield 语句后的表达式的结果才会返回给调用者。当迭代器结束时会抛出 StopIteration 异常。

该方法会被 for 以及内置函数 next 隐式的调用。

2、send

继续执行生成器(注意是继续而不是第一次执行),并发送一个值到生成器函数。send 方法的参数是下一个 yield 语句的返回值,前提是 yield 语句中要事先接收它传递的参数。如果使用该方法启动(也就是第一次执行)生成器,必须使用 None 作为其参数,因为此时还没有 yield 能够接收它的值(毕竟接收该值的语句还没有开始执行)。

def fn():
    a = 0
    while True:
        a += 1
        r = yield # r 就是接收 send 参数的变量
        print('{} => {}'.format(a, r))
 
>>> f = fn()
>>> f.send('a') # 不传递 None 的后果
Traceback (most recent call last):
  File "/opt/python3/lib/python3.6/site-packages/IPython/core/interactiveshell.py", line 2910, in run_code
    exec(code_obj, self.user_global_ns, self.user_ns)
  File "<ipython-input-31-6f758a7cad28>", line 1, in <module>
    f.send('a')
TypeError: can't send non-None value to a just-started generator
>>> next(f) # 也可以不传递 None 而是使用 next 执行,两种方式都可以
>>> f.send('a')
1 => a
>>> f.send('b')
2 => b

以上就是python生成器调用方法引发异常,希望能对大家有所帮助。更多Python学习指路:python基础教程

关注

关注公众号,随时随地在线学习

本教程部分素材来源于网络,版权问题联系站长!

我把刘姨俩腿扛在肩上是哪一集| 朋友的妈妈7中字谜| 亲吻哼哼唧唧原声不带歌| 合不拢腿(双)BY粗眉毛免费阅..| 私处按摩SPA养生精油| JIXIESHI| 老公在怀里吃奶像个小孩子| 人野兽马狗猪大全| 电影《满足2》完整版在线观看| 老公不在小叔子当老公| 乐乐的放荡日记 笔趣阁在线阅读| 每日大赛 反差吃瓜爆料合集视频| 《酒店激战》动漫1-5集免费观...| 摸的下身已洪水泛滥怎么办| HTTPS://WWW.AP...| 法国《监狱伦理3》| 把老婆闺蜜干了俩次| 主动把乳头放进男朋友嘴巴里| 兄妹客厅当父母面爱叫啥| BOBO浏览器| 男人添女人荫道口视频| -滴都不许漏》何泽城林荫| 亲吻刺激战场视频大全真人版免费.. | 台湾《洞门为君开》演员表| 无法抗拒的你ID中字| 1688黄桃网站进入页面| 法国色情《宝贝宝贝3| 第9节 妈妈女儿齐上阵| 丫头把腿开大让我添添电影| 美国大片免费观看2022年上映| 98在线高清免费观看电视剧狂飙| 《别告诉我丈夫》电影| 色翁荡熄300篇| 强伦轩特级A片免费播放女的老师 《暴力强伦轩》电影影 | 白日梦我免费观看电视剧| 爸老师巅峰电影在线观看| 憋尿白丝小肚子凸起高冷知乎 | 亚洲AV少妇高潮嗷嗷叫| 《夜班护士》结局| 桃色| 《俄罗斯空姐2(俄罗斯航空)》