首页 > 试题广场 >

以下Python代码执行时会抛出什么错误? def gen(

[单选题]
以下Python代码执行时会抛出什么错误?
def gen():
    yield 1
    yield 2
g = gen()
print(g.send(1))
  • 无异常,输出1
  • TypeError
  • StopIteration
  • ValueError
会抛出 TypeError,错误核心原因是:对刚创建、未启动的生成器调用  send()  方法时,传递了非  None  的参数(此处为 1)。 生成器在首次启动时,必须通过  next(g)  或  g.send(None)  触发执行到第一个  yield  处,之后才能使用  send()  传递非  None  的值。
发表于 今天 09:03:08 回复(0)