国产成人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基础教程

关注

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

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

水手服| ALLEY| 内衣秀| 亚洲一区| 宝宝今晚不带小雨伞| 单亲妈妈用性缓解孩子压力| 男人吃奶摸下面弄进去会怀孕吗| 《办公室高潮秘书2》| 宝贝把腿开大让我添添你视频| 老师穿白色双开真丝旗袍怎么穿| 梁祝艳谭5免费观看| 男生把小困困放到女生困里视频| 丰满的儿女小月的身世与背景介绍| 三年大片免费观看完整版高清| 忘穿内裤被同桌C了好爽微博小说| 动漫网| 妈妈叫我老公我叫妈妈的名字| 双乳被四个男人吃奶动态图| 男生把困困放到女生坤坤视频高清 | 波多野结衣| 男奴调教赤裸跪爬服传| 《诱人的女房东3》| 宝宝扶着水池乖乖让爸爸洗头文| 《台球室的特殊待遇》| 豆传媒剧国产MV有什么特点| 床3| XX| 9l制作厂麻花| 韩剧《喂奶2》的主要内容是什么 《一滴都不许漏》何泽城林荫 | 美女和男生一起努力的生孩子视频.. | 儿子找不到媳妇妈妈能以身相许吗| 校长办公室莹莹岔开腿呻吟AV| 依卡| 《女仆教育》动漫第一季| 他的大手在秘密花园游走漫画| 春闺艳妇(古言)作者:年富一年| 男男电影免费观看完整版大结局| 人口兽猪马狗第1集| 梦幻西游PK视频| BOBO浏览器老司机模式改版特..| 《蹂躇》无删减版