千锋教育-做有情怀、有良心、有品质的职业教育机构

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

来源:千锋教育
发布时间:2023-11-13 20:24:18
分享

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

(推荐操作系统:windows7系统、Python3.9.1、DELLG3电脑。)

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

1、__next__

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

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

2、send

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

deffn():

a=0

whileTrue:

a+=1

r=yield#r就是接收send参数的变量

print('{}=>{}'.format(a,r))

>>>f=fn()

>>>f.send('a')#不传递None的后果

Traceback(mostrecentcalllast):

File"/opt/python3/lib/python3.6/site-packages/IPython/core/interactiveshell.py",line2910,inrun_code

exec(code_obj,self.user_global_ns,self.user_ns)

File"",line1,in

f.send('a')

TypeError:can'tsendnon-Nonevaluetoajust-startedgenerator

>>>next(f)#也可以不传递None而是使用next执行,两种方式都可以

>>>f.send('a')

1=>a

>>>f.send('b')

2=>b

以上就是python生成器调用方法引发异常,希望能对大家有所帮助。更多Python学习教程请关注IT培训机构:千锋教育。

声明:本站部分稿件版权来源于网络,如有侵犯版权,请及时联系我们。

相关推荐

  • python常用的画布方法 python常用的画布方法画布是turtle为我们展开绘画区域,可以设定其大小和初始位置。常用的画布方法有两个:screensize()和setup()。1.turtle.screensize(can
  • python代码的风格是什么? python代码的风格是什么?本文教程操作环境:windows7系统、Python3.9.1,DELLG3电脑。每一种计算机语言都有其特有的代码风格。如下:1、空格。如下所示的等号两边空格可加可不加,
  • python函数文档怎么写? python函数文档怎么写?本文教程操作环境:windows7系统、Python3.9.1,DELLG3电脑。函数的文档的作用是对当前函数提供使用相关的参考信息。1、文档的写法:在函数内部开始的第一行
  • python收集参数如何解包 python收集参数如何解包本文教程操作环境:windows7系统、Python3.9.1,DELLG3电脑。1、说明把参数放入List或者字典中,直接把List/dict中的值放入收集参数中。同理,
  • python收集参数的调用顺序 python收集参数的调用顺序本文教程操作环境:windows7系统、Python3.9.1,DELLG3电脑。1、说明收集参数,关键字参数,普通参数可以混合使用使用规则就是普通参数和关键字参数优先定
  • python收集参数是什么? python收集参数是什么?本文教程操作环境:windows7系统、Python3.9.1,DELLG3电脑。1、概念把关键字参数按字典格式存入收集参数。2、语法deffunc(**kwargs):f