TypeError: can't send non-None value to a just-started generator-python报错问题

Madge ·
更新时间:2024-11-11
· 613 次阅读

TypeError: can’t send non-None value to a just-started generator
翻译过来是:
TypeError:无法将非None值发送到刚启动的生成器
原因如下:
在一个生成器函数未启动之前,是不能传递数值进去。必须先传递一个None进去或者调用一次next(g)方法,才能进行传值操作。
例如:
代码:

def generator_two(): while True: x = yield print("value:", x) #g为上面的生成器 g = generator_two() #程序运行到yield就暂停,等待下一个next #给yield传送值1,yield再将1传给x,继续下一次循环,停在yeild处 g.send(1) #给yeild传送值2,yield再将2传给x,继续下一次循环,停在yeild处 g.send(2) #没有给yield传值,打印输出None,继续停在yield处,等待下一个next next(g) print(next(g))

报错情况:
在这里插入图片描述
当我们加上next(g)的时候,自然也就运行出来了
代码:

def generator_two(): while True: x = yield print("value:", x) #g为上面的生成器 g = generator_two() #程序运行到yield就暂停,等待下一个next next(g) #给yield传送值1,yield再将1传给x,继续下一次循环,停在yeild处 g.send(1) #给yeild传送值2,yield再将2传给x,继续下一次循环,停在yeild处 g.send(2) #没有给yield传值,打印输出None,继续停在yield处,等待下一个next next(g) print(next(g))

运行结果:
在这里插入图片描述

一个超级无敌可爱的人 原创文章 63获赞 196访问量 8301 关注 私信 展开阅读全文
作者:一个超级无敌可爱的人



value send None TO Python

需要 登录 后方可回复, 如果你还没有账号请 注册新账号