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

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))

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

原创文章 96 获赞 330 访问量 2万+

猜你喜欢

转载自blog.csdn.net/hanhanwanghaha/article/details/105905235