python函数调用出错,python中异常处理的两种方式
(推荐操作系统:windows7系统,Python 3.9.1,戴尔G3电脑。)
请注意,在执行生成器时调用以下任何生成器方法都会引发ValueError异常。
1、__next__
启动生成器或在最后一条yield语句后继续执行。当使用该方法继续时(注意是继续而不是第一次执行),那么当前yield的返回值为None,yield语句后的表达式结果直到下一条yield语句执行后才会返回给调用者。当迭代器结束时,抛出StopIteration异常。
接下来,for和内置函数将隐式调用此方法。
2、send
继续执行生成器(注意是继续执行而不是第一次执行),并向生成器函数发送一个值。send方法的参数是下一个yield语句的返回值,前提是在yield语句中预先接收到它传递的参数。如果使用这个方法启动(即第一次执行)生成器,就必须使用None作为它的参数,因为此时没有yield可以接收它的值(毕竟接收值的语句还没有开始执行)。
deffn():
a=0
whileTrue:
a=1
R=yield#r是接收send参数的变量。
打印( {}={} )。格式(a,r))
f=fn()
F.send(a)#没有通过的后果
回溯(mostrecentcalllast):
文件“/opt/python 3/lib/python 3.6/site-packages/IPython/core/interactive shell . py”,第2910行,inrun_code
exec(代码_对象,自我.用户_全局_ns,自我.用户_ns)
文件 ipython-input-31-6f758a7cad28 ,第1行,在模块中
发送( a )
TypeError:can无法发送non-nonevaluetojust-started generator
Next(f)#也可以通过使用Next而不是传递None来执行。
发送( a )
1=a
发送( b )
上面的2=b是python生成器调用方法抛出异常。希望能帮到你。更多Python学习指南:python基础教程
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。