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

关注

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

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

边吃奶边扭身体哼唧怎么回事| 麻豆| 爸爸汆肉的日常| 屁股翘起来跪在床上有好处吗| 少女的夜晚初体验免费观看电视剧| 公翁晚上吃我奶头子| 青柠影院在线观看高清电视剧荣耀| 《睡眠指导1-6集》| 《指尖上的热情》| 含紧一点H.边做边走| 东北娘们国语版免费播放| 啊…快……用力啊小能视频| 成品网站1688入门怎么样| 教练车内含乳挺进她漫画| 八戒八戒电影在线看免费观看8| 朝桐光| 《诱人的女房东3》| 来吧儿子妈妈是纯还是仿| 日本大片又大又好看的PPT| 柳枝| CSGO暴躁少女高清大片| 《慈母夜吟》完整版| 酒鬼酒股票| 双乳被四个男人吃奶动态图| 揉鸡的正确手法图解| 美国《性船》无删减| 克什米尔| 《情人》大尺度| 母与子免费观看大全电视剧| 欧美性开放性滥交| 老公在洗澡我被公干日本| 《肉体暴力强伦轩》| 日亚M码是日本的还是中国的| 男生把小困困放到女生困里视频| 韩剧| 《我的漂亮老板娘》演员名单| 迪拜的女孩| 己满十八岁免费观看电视剧的软件| 乳首やばっちやんねん的英文| 白丝脚上的浓浓的精华液能用吗| 被学长抱进小树林C个爽